变量

var 语句 申明 ( declare )变量列表;跟 函数 参数列表一样,类型在最后指定。

var 语句的作用域(可见范围)可以是 包级别 或者 函数级别 。下面这个例子同时包含这两种级别:

/_src/tour/variables.go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. var c, python, java bool
  6.  
  7.  
  8. func main() {
  9. var i int
  10. fmt.Println(i, c, python, java)
  11. }

作用域是啥意思呢?

以上述代码为例,变量 cpythonjava 的作用域是 包级别 ,意味着包内任何函数都可以访问这些变量;定义在函数内部的 i 则是 函数级别 ,只有在 main 函数内部才能访问。

初始值

变量申明可以带初始值,一个变量一个。在初始值存在的情况下,类型可以忽略;变量则继承初始值的类型。

/_src/tour/variables-with-initializers.go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. var i, j int = 1, 2
  6.  
  7.  
  8. func main() {
  9. var c, python, java = true, false, "no!"
  10. fmt.Println(i, j, c, python, java)
  11. }

简式申明

在函数内部,可以用 := 赋值语句代替 var 变量申明语句,变量类型也可以省略,这就是 简式申明

/_src/tour/short-variable-declarations.go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5.  
  6. func main() {
  7. var i, j int = 1, 2
  8. k := 3
  9. c, python, java := true, false, "no!"
  10.  
  11. fmt.Println(i, j, k, c, python, java)
  12. }

在函数外部,每个语句都必须由一个关键字开始(如 varfunc 等),:= 语句不可用。

下一步

下一节 我们一起来看看 Go 语言 基本类型

订阅更新,获取更多学习资料,请关注我们的 微信公众号

../_images/wechat-mp-qrcode.png小菜学编程

微信打赏