使用初始化器了解变量

时间:2019-03-27 21:14:08

标签: go

我正在学习go(golang)的基础知识。

我似乎无法确定初始化程序变量的工作原理。

package main

import "fmt"

var i, j int = 100000, 5

func main() {
    fmt.Println(j)
}

当我打印出j时,我得到5而不是100000,为什么?

2 个答案:

答案 0 :(得分:4)

很明显,i = 100000j = 5

var i, j int = 100000, 5

等同于

var i int = 100000
var j int = 5

只需将变量列表中的项目与初始化程序列表中的相应项目匹配。

  

The Go Programming Language Specification

     

Variable declarations

     

如果给出了表达式列表,则变量将使用进行初始化   遵循分配规则的表达式。

例如,

package main

import "fmt"

var i, j int = 100000, 5

func main() {
    fmt.Println(i, j)
}

游乐场:https://play.golang.org/p/w821v9Tl1zx

输出:

100000 5

答案 1 :(得分:4)

初始化多个变量时,将按照传递顺序对其进行初始化。

因此,如果要先声明i然后声明j,那么将按相同顺序分配值100000然后5

打印j时,您会得到5,因为它是第二个变量,并且对应于第二个值。

这也适用于以下方式相同的方式:多个变量在go中返回工作,例如下面的示例,或者在操场上返回工作示例here

func doStuff() (string, int) {
    red, five := "red", 5
    return red, five
}

有关使用变量的更多信息,请参见this有用的资源,有关使用多个变量返回的信息,请参见《漫游之旅》中的this