1 变量三种声明: (第一种的var和类型都是多余;
第二种最简洁,但是第二种只能用在函数中,不能是全局变量的声明)
第一种:
var v_name v_type(注意顺序)
v_name = value
package main import "fmt" func main() { var vname1, vname2, vname3 int vname1, vname2, vname3 = 1, 2, 3 fmt.Println(vname1) fmt.Println(vname2) fmt.Println(vname3) }
第二种:(初始化声明)
如果在相同的代码块中,我们不可以再次对于相同名称的变量使用初始化声明
var v_name = value(自行推导类型)
package main import "fmt" func main() { var v1, v2, v3 = 7, 8, 9 fmt.Println(v1) fmt.Println(v2) fmt.Println(v3) }
第三种:
v_name := value(:=左侧的变量必须是没有声明过的)
2 值类型和引用类型
所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值;当使用等号 =
将一个变量的值赋值给另一个变量时,如:j = i
,实际上是在内存中将 i 的值进行了拷贝
&i 来获取变量 i 的内存地址,例如:0xf840000040(每次的地址都可能不一样)。值类型的变量的值存储在栈中。
。