From 2501c5738af2c15607a4e5f13600d012f2af81e4 Mon Sep 17 00:00:00 2001 From: vCaesar Date: Wed, 18 Jan 2017 16:41:11 +0800 Subject: [PATCH] Fix #781 and other err --- zh/02.2.md | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/zh/02.2.md b/zh/02.2.md index b2657426..5515fc98 100644 --- a/zh/02.2.md +++ b/zh/02.2.md @@ -251,26 +251,36 @@ Go内置有一个`error`类型,专门用来处理错误信息,Go的`package` Go里面有一个关键字`iota`,这个关键字用来声明`enum`的时候采用,它默认开始值是0,const中每增加一行加1: ```Go - const( - x = iota // x == 0 - y = iota // y == 1 - z = iota // z == 2 - w // 常量声明省略值时,默认和之前一个值的字面相同。这里隐式地说w = iota,因此w == 3。其实上面y和z可同样不用"= iota" + package main + + import ( + "fmt" + ) + + 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 ( - 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 ( - a = iota a=0 - b = "B" - c = iota //c=2 - d,e,f = iota,iota,iota //d=3,e=3,f=3 - g //g = 4 - ) + const ( + a = iota //a=0 + b = "B" + c = iota //c=2 + d, e, f = iota, iota, iota //d=3,e=3,f=3 + 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`。