阅读 107

Go之旅(五)- 变量

原文

tour.golang.org/basics/8

tour.golang.org/basics/9

译文

var语句用于声明变量列表,就像函数中的参数列表,类型放在最后。var语句可出现在包或函数级别,在下例中我们可看到这两种情况

package main

import "fmt"

var c, python, java bool

func main() {
	var i int
	fmt.Println(i, c, python, java)
}
复制代码

变量在声明时可包含初始值,每个变量一个初始值。如果有初始值,可省略类型,变量将采用初始值类型。

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声明。在函数外,每条语句以一个关键字开头(var, func等),因此:=无法使用。

译者注

在Go中,同名变量可在包和函数级别同时声明,它们将互不影响,如下例中的i,j,c,python,java变量。 其中java在包级别被声明为布尔型,而在函数case3()级别则声明为字符串类型。

package main

import "fmt"

var c, python, java bool

var i, j = -1, -2

func case3() {
	var i, j = 1, 2
	k := 3
	c, python, java := true, false, "No!"
	fmt.Println(i, j, k, c, python, java)
}

func main() {
	case3()
	fmt.Println(i, j, c, python, java)
}
复制代码

上面的程序将输出如下结果

1 2 3 true false No!
-1 -2 false false false
复制代码

可以发现,及时函数内部声明了同名变量,也不会影响包级别变量的运行。

文章分类
后端
文章标签