syntax error: non-declaration statement outside function body

5 篇文章 0 订阅

开始学习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)

}

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值