6 go
我很好奇各种类型的表达式的顺序,所以我在顶级声明级别尝试了这个代码,认为它会失败,但发现它有效:
http://play.golang.org/p/CfP3DEC5LP
var x = func() *Foo {
fmt.Println(f) // prints &{foobar}
return f
}()
var f = &Foo{"foobar"}
type Foo struct {
bar string
}
Run Code Online (Sandbox Code Playgroud)
请注意:
该type Foo struct
声明是在底部
type
声明之前有var f
声明和&Foo{]
作业
在var
声明之前,有一个立即调用的函数,它引用并返回f
变量.
尽管我&Foo{}
在type Foo struct
声明之前发生了一个值,但我并没有太大的惊喜,但我确实惊讶于我可以f
在分配之前成功引用并打印它.
这是一种可靠且明确的行为吗?我在规范中找不到任何对这种排序的引用,但也许我忽略了它.
归档时间: |
|
查看次数: |
207 次 |
最近记录: |