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 

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)

}

猜你喜欢

转载自blog.csdn.net/weixin_38055381/article/details/85060181
今日推荐