var 语句 申明( declare )变量列表; 跟 函数 参数列表一样,类型在最后指定。
var 语句的作用域(可见范围)可以是 包级别 或者 函数级别 。 下面这个例子同时包含这两种级别:
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
var c, python, java bool
func main() {
var i int
fmt.Println(i, c, python, java)
}
|
作用域是啥意思呢?
以上述代码为例,变量 c 、python 、java 的作用域是 包级别 , 意味着包内任何函数都可以访问这些变量;定义在函数内部的 i 则是 函数级别 , 只有在 main 函数内部才能访问。
初始值
变量申明可以带初始值,一个变量一个。在初始值存在的情况下,类型可以忽略;变量则继承初始值的类型。
1
2
3
4
5
6
7
8
9
10
|
package main
import "fmt"
var i, j int = 1, 2
func main() {
var c, python, java = true, false, "no!"
fmt.Println(i, j, c, python, java)
}
|
简式申明
在函数内部,可以用 :=
赋值语句代替 var 变量申明语句, 变量类型也可以省略,这就是 简式申明 。
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
func main() {
var i, j int = 1, 2
k := 3
c, python, java := true, false, "no!"
fmt.Println(i, j, k, c, python, java)
}
|
在函数外部,每个变量申明语句都必须由一个关键字开始(如 var 、func 等), :=
语句不可用。
【小菜学Go语言】系列文章首发于公众号【小菜学编程】,敬请关注: