开始学习go语言时总会踩到一些坑,今天分享一下。我的代码如下:
package main
import(
"fmt"
)
type boby struct {
id int
name string
age int
}
var b boby
b.id=1
b.name = "annie"
b.age = 20
func main() {
fmt.Printf("The boby's name is %s", b.name)
}
然后就报错了:syntax error: non-declaration statement outside function body
分析:因为你在函数体外给赋值了,go语言有闭包原则,还有它的变量命名规则,导致你的赋值函数体没有办法使用,所以才会报错。正确写法有以下两种 。
一,
package main
import(
"fmt"
)
type boby struct {
id int
name string
age int
}
var b =boby{0,"annie",20}
func main() {
fmt.Printf("The boby's name is %s", P.name)
}
二,
package main
import(
"fmt"
)
type boby struct {
id int
name string
age int
}
var b boby
func main() {
b.id=0
b.name="minmin"
b.age=10
fmt.Printf("The boby's name is %s", b.name)
}