Merge commit '5105ad8883cd09b95247f5baa23276a87d261ea0' into ja
This commit is contained in:
19
zh/02.2.md
19
zh/02.2.md
@@ -227,8 +227,6 @@ Go内置有一个`error`类型,专门用来处理错误信息,Go的`package`
|
|||||||
prefix string
|
prefix string
|
||||||
)
|
)
|
||||||
|
|
||||||
>除非被显式设置为其它值或`iota`,每个`const`分组的第一个常量被默认设置为它的0值,第二及后续的常量被默认设置为它前面那个常量的值,如果前面那个常量的值是`iota`,则它也被设置为`iota`。
|
|
||||||
|
|
||||||
### iota枚举
|
### iota枚举
|
||||||
|
|
||||||
Go里面有一个关键字`iota`,这个关键字用来声明`enum`的时候采用,它默认开始值是0,每调用一次加1:
|
Go里面有一个关键字`iota`,这个关键字用来声明`enum`的时候采用,它默认开始值是0,每调用一次加1:
|
||||||
@@ -246,6 +244,8 @@ Go里面有一个关键字`iota`,这个关键字用来声明`enum`的时候采
|
|||||||
e, f, g = iota, iota, iota //e=0,f=0,g=0 iota在同一行值相同
|
e, f, g = iota, iota, iota //e=0,f=0,g=0 iota在同一行值相同
|
||||||
)
|
)
|
||||||
|
|
||||||
|
>除非被显式设置为其它值或`iota`,每个`const`分组的第一个常量被默认设置为它的0值,第二及后续的常量被默认设置为它前面那个常量的值,如果前面那个常量的值是`iota`,则它也被设置为`iota`。
|
||||||
|
|
||||||
### Go程序设计的一些规则
|
### Go程序设计的一些规则
|
||||||
Go之所以会那么简洁,是因为它有一些默认的行为:
|
Go之所以会那么简洁,是因为它有一些默认的行为:
|
||||||
- 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量;小写字母开头的就是不可导出的,是私有变量。
|
- 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量;小写字母开头的就是不可导出的,是私有变量。
|
||||||
@@ -379,6 +379,19 @@ slice有一些简便的操作
|
|||||||
注:`append`函数会改变`slice`所引用的数组的内容,从而影响到引用同一数组的其它`slice`。
|
注:`append`函数会改变`slice`所引用的数组的内容,从而影响到引用同一数组的其它`slice`。
|
||||||
但当`slice`中没有剩余空间(即`(cap-len) == 0`)时,此时将动态分配新的数组空间。返回的`slice`数组指针将指向这个空间,而原数组的内容将保持不变;其它引用此数组的`slice`则不受影响。
|
但当`slice`中没有剩余空间(即`(cap-len) == 0`)时,此时将动态分配新的数组空间。返回的`slice`数组指针将指向这个空间,而原数组的内容将保持不变;其它引用此数组的`slice`则不受影响。
|
||||||
|
|
||||||
|
从Go1.2开始slice支持了三个参数的slice,之前我们一直采用这种方式在slice或者array基础上来获取一个slice
|
||||||
|
|
||||||
|
var array [10]int
|
||||||
|
slice := array[2:4]
|
||||||
|
|
||||||
|
这个例子里面slice的容量是8,新版本里面可以指定这个容量
|
||||||
|
|
||||||
|
slice = array[2:4:7]
|
||||||
|
|
||||||
|
上面这个的容量就是`7-2`,即5。这样这个产生的新的slice就没办法访问最后的三个元素。
|
||||||
|
|
||||||
|
如果slice是这样的形式`array[:i:j]`,即第一个参数为空,默认值就是0。
|
||||||
|
|
||||||
### map
|
### map
|
||||||
|
|
||||||
`map`也就是Python中字典的概念,它的格式为`map[keyType]valueType`
|
`map`也就是Python中字典的概念,它的格式为`map[keyType]valueType`
|
||||||
@@ -448,6 +461,8 @@ slice有一些简便的操作
|
|||||||
|
|
||||||
图2.5 make和new对应底层的内存分配
|
图2.5 make和new对应底层的内存分配
|
||||||
|
|
||||||
|
|
||||||
|
## 零值
|
||||||
关于“零值”,所指并非是空值,而是一种“变量未填充前”的默认值,通常为0。
|
关于“零值”,所指并非是空值,而是一种“变量未填充前”的默认值,通常为0。
|
||||||
此处罗列 部分类型 的 “零值”
|
此处罗列 部分类型 的 “零值”
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user