![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Golang语言学习路线图-李文周(七米)
文章平均质量分 62
记录所学所想
冉小也
努力成为让自己满意的人
展开
-
散记04:切片
因为切片实质是用数组指针指向数组地址,而它本身是没有数据内容的,因此我们通过判断一个切片为nil并不能表示切片的长度为0,虽然切片为nil时,该切片的长度和容量均为0,但是,如果数组指针指向一个无数据的空数组,虽然该切片不为nil,但却依然是长度为0,如果是通过判断一个切片为nil就认定该切片为空,那么很显然这种情况就是不为空,这就有逻辑错误。切片是基于数组做的一层封装。还有一种表达式为“待切片数组[low:high:max]”,其中max-low可以看做是新切片定义的容量,但也并不超过原切片的容量。原创 2024-06-29 21:22:03 · 239 阅读 · 0 评论 -
散记02:运算符、流程控制
与平常的if写法不同,这里score变量只是if语句块中的局部变量,并不能在外部使用。在只需要从开头到结束的遍历场景中,使用for range显然更加便捷,无需手动管理各类索引变量,当然有时也可以通过添加if语句判断使其遍历出条件需要的元素。该语法对于多层嵌套中的代码结构有良好的效果,可以免去多个break,以及多个break条件判断的编写,避免重复退出,能够一步到位。在多层嵌套的代码结构中,通过结束外层循环来一并结束内层循环,也不失为一种简洁的方法,且要比goto更有逻辑性和简明。map返回的是键和值。原创 2024-06-29 16:05:40 · 346 阅读 · 0 评论 -
散记01:基本数据类型
string类型实际上可以视作是一个固定化的、不能修改的byte数组,选用byte作为底层,而不用rune的主要原因是byte虽然不能表示多字节下的字符,但由于其单字节的特性使其更紧凑,占用内存更少,不会像rune那样可能会有许多空闲字节。在整数类型中,有两类,一类是指定长度的(如:uint8、int8、uint16、int16等等),一类是不指定长度的特殊整型(如int、uint、uintptr),它的长度是随所在平台不同而不同,在32位的计算机上则长度为32位,在64位的计算机上则长度为64位。原创 2024-06-29 12:02:28 · 379 阅读 · 0 评论 -
01 包的基本概念
A2:也就是说包下的每个文件因为有了包的标记而获得独特性,即便是两份同名为a.go的文件,也会因为一个属于b包,一个属于c包,而被标记为b/a.go和c/a.go,这让它的全称是不同的,这表明,即使相对路径下的文件名相同,包名的加入使得它们在编译器眼中具有了独一无二的身份,这通过包名的前缀在编译器层面实现了标识符的唯一性,使用包内部的标识需要添加包名前缀就体现了这一点。包位于Go的标准库路径中。S2:在同一个包内部声明的标识符都位于同一个命名空间下,在不同的包内部声明的标识符就属于不同的命名空间。原创 2024-06-11 16:40:26 · 453 阅读 · 0 评论