go语言陷阱之四:Short Variable Declarations Can Be Used Only Inside Functions

姑且译为短量的声明只能是在函数体内吧,听起来有点怪怪的感觉,一如既往地,先来看代码:

package main

myvar := 1 //error

func main() {  
}
运行结果:
# command-line-arguments
./hello_world.go:3: non-declaration statement outside function body

go不允许variable := something这种变量的赋值出现在函数体外,但是这种是可以的:

package main

var myvar = 1 

func main() {
}

这两种赋值方式有何不同呢?
":=" 是在声明和初始化变量,因此该变量必须是第一次出现, 声明和赋值必须是一气呵成的,不能写成先声明后赋值这种形式,这个必须在函数体内才行。
而var 这种变量声明模式在使用范围上就没有这么严格的限制了,这一点与javascript比较相似。
mark!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、c语言的函数有以下特点: (1)才源程序由函数组成,一个主函数main()+若干其他函数 C程序中的函数类似文...
    滕王阁序阅读 5,232评论 0 6
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 5,770评论 1 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,487评论 18 399
  • 文/宋丽 今天是张国荣60岁的冥寿。如今,盛大的怀念已经偃旗息鼓,某种程式化的怀念被媒体批判为庸俗的套路。但是,当...
    宋小丽阅读 4,440评论 0 3
  • 曾几何时,年少轻狂 两年前的今天,和你一样,揣着懵懂和不安,踏进了这个如今看来既熟悉又陌生的学校。熟悉到似乎已经踏...
    于三笨TXT阅读 3,493评论 15 9

友情链接更多精彩内容