作为 golang规范的一部分,我尝试编写测试代码。根据规范,初始化顺序应该是d、b、c、a,我认为b应该是4,c应该是5,但实际上我得到了b == 5且c == 4,这是哪里出了问题?还是我误解了规范?我在以下go版本中进行了尝试。
go version go1.12.4 linux/amd64
package main
import "fmt"
var (
a = c + b
b = f()
c = f()
d = 3
)
func f() int {
d++
return d
}
func main() {
fmt.Println("a", a)
fmt.Println("b", b)
fmt.Println("c", c)
fmt.Println("d", d)
}
结果是
result:
a 9
b 5
c 4
d 5
期望 b = 4,c = 5