Go语言变量概述

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)
}

作用域是啥意思呢?

以上述代码为例,变量 cpythonjava 的作用域是 包级别 , 意味着包内任何函数都可以访问这些变量;定义在函数内部的 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)
}

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

【小菜学Go语言】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学Go语言】系列文章首发于公众号【小菜学编程】,敬请关注: