36
zh/02.2.md
36
zh/02.2.md
@@ -251,26 +251,36 @@ Go内置有一个`error`类型,专门用来处理错误信息,Go的`package`
|
|||||||
Go里面有一个关键字`iota`,这个关键字用来声明`enum`的时候采用,它默认开始值是0,const中每增加一行加1:
|
Go里面有一个关键字`iota`,这个关键字用来声明`enum`的时候采用,它默认开始值是0,const中每增加一行加1:
|
||||||
```Go
|
```Go
|
||||||
|
|
||||||
const(
|
package main
|
||||||
x = iota // x == 0
|
|
||||||
y = iota // y == 1
|
import (
|
||||||
z = iota // z == 2
|
"fmt"
|
||||||
w // 常量声明省略值时,默认和之前一个值的字面相同。这里隐式地说w = iota,因此w == 3。其实上面y和z可同样不用"= iota"
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
x = iota // x == 0
|
||||||
|
y = iota // y == 1
|
||||||
|
z = iota // z == 2
|
||||||
|
w // 常量声明省略值时,默认和之前一个值的字面相同。这里隐式地说w = iota,因此w == 3。其实上面y和z可同样不用"= iota"
|
||||||
)
|
)
|
||||||
|
|
||||||
const v = iota // 每遇到一个const关键字,iota就会重置,此时v == 0
|
const v = iota // 每遇到一个const关键字,iota就会重置,此时v == 0
|
||||||
|
|
||||||
const (
|
const (
|
||||||
e, f, g = iota, iota, iota //e=0,f=0,g=0 iota在同一行值相同
|
h, i, j = iota, iota, iota //h=0,i=0,j=0 iota在同一行值相同
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
a = iota a=0
|
a = iota //a=0
|
||||||
b = "B"
|
b = "B"
|
||||||
c = iota //c=2
|
c = iota //c=2
|
||||||
d,e,f = iota,iota,iota //d=3,e=3,f=3
|
d, e, f = iota, iota, iota //d=3,e=3,f=3
|
||||||
g //g = 4
|
g = iota //g = 4
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println(a, b, c, d, e, f, g, h, i, j, x, y, z, w, v)
|
||||||
|
}
|
||||||
```
|
```
|
||||||
>除非被显式设置为其它值或`iota`,每个`const`分组的第一个常量被默认设置为它的0值,第二及后续的常量被默认设置为它前面那个常量的值,如果前面那个常量的值是`iota`,则它也被设置为`iota`。
|
>除非被显式设置为其它值或`iota`,每个`const`分组的第一个常量被默认设置为它的0值,第二及后续的常量被默认设置为它前面那个常量的值,如果前面那个常量的值是`iota`,则它也被设置为`iota`。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user