对一段有关Go Code Block和变量作用域的代码的简要分析 原创 Tony Bai TonyBai 2018-05-11

对一段有关Go Code Block和变量作用域的代码的简要分析

2018-05-11

https://mp.weixin.qq.com/s/vD8jOjkt_kBc9fd8huIUAQ

Each file has a file block containing all Go source text in that file.

4. Each "if", "for", and "switch" statement is considered to be in its own implicit block.

5. Each clause in a "switch" or "select" statement acts as an implicit block.

func writeDb(Type int) bool {

var B bool

switch Type {

case 1:

B = true

}

return B

}

type T struct {

B bool

}

func writeDb1(Type int) (t T) {

var B bool

switch Type {

case 1:

B = true

}

t.B = B

return

}

func main() {

i := writeDb(1)

j := writeDb(2)

i1 := writeDb1(1)

j1 := writeDb1(2)

fmt.Println(i,j,i1,j1)