函数外部的匿名结构不起作用
Anonymous structs outside function not working
我不明白为什么这对这种类型的结构不起作用。
package main
import (
"fmt"
)
var myStruct struct {
number float64
word string
toggle bool
}
myStruct.number = 3.14
myStruct.word = "pie"
myStruct.toggle = true
func main() {
//myStruct.number = 3.14
//myStruct.word = "pie"
//myStruct.toggle = true
fmt.Println(myStruct.number)
fmt.Println(myStruct.toggle)
fmt.Println(myStruct.word)
}
如果我尝试在 main 外部更改 myStruct.number,我会收到编译错误 syntax error: non-declaration statement outside function body
,但它在函数内部工作正常。对于变量或其他类型的数据结构,它可以很好地更改主范围之外的值,但不能使用结构。
该程序是 Head first Go 的示例,即使我至少搜索了三本书并 google 了解更多信息,我也没有找到类似的东西可以更好地解释。
https://play.golang.org/p/brocZzWuRae
package main
import (
"fmt"
)
var myStruct = struct {
number float64
word string
toggle bool
}{
number: 3.14,
word: "pie",
toggle: true,
}
func main() {
//myStruct.number = 3.14
//myStruct.word = "pie"
//myStruct.toggle = true
fmt.Println(myStruct.number)
fmt.Println(myStruct.toggle)
fmt.Println(myStruct.word)
}
我不明白为什么这对这种类型的结构不起作用。
package main
import (
"fmt"
)
var myStruct struct {
number float64
word string
toggle bool
}
myStruct.number = 3.14
myStruct.word = "pie"
myStruct.toggle = true
func main() {
//myStruct.number = 3.14
//myStruct.word = "pie"
//myStruct.toggle = true
fmt.Println(myStruct.number)
fmt.Println(myStruct.toggle)
fmt.Println(myStruct.word)
}
如果我尝试在 main 外部更改 myStruct.number,我会收到编译错误 syntax error: non-declaration statement outside function body
,但它在函数内部工作正常。对于变量或其他类型的数据结构,它可以很好地更改主范围之外的值,但不能使用结构。
该程序是 Head first Go 的示例,即使我至少搜索了三本书并 google 了解更多信息,我也没有找到类似的东西可以更好地解释。
https://play.golang.org/p/brocZzWuRae
package main
import (
"fmt"
)
var myStruct = struct {
number float64
word string
toggle bool
}{
number: 3.14,
word: "pie",
toggle: true,
}
func main() {
//myStruct.number = 3.14
//myStruct.word = "pie"
//myStruct.toggle = true
fmt.Println(myStruct.number)
fmt.Println(myStruct.toggle)
fmt.Println(myStruct.word)
}