变量

通过类型转换或指针操作,我们可用不同方式修改变量值,但这并不意味着改变了变量类型


定义


简短模式

除var关键字外,可以用更简短的变量和初始化语法


简短模式下有限制:

  • 定义变量,同时显示初始化
  • 不能提供数据类型
  • 只能用在函数内部

注意:用简短模式,可能会造成一些意外错误,原本打算修改全局变量,结果变成重新定义同名局部变量。


输出: 根据内存地址,可以判断出是两个不同变量
0x3a2250 100
0xc00002e1f0 abc


简短定义在函数多返回值,以及if/for/switch 等语句定义局部变量非常方便


多变量赋值

多变量赋值操作时,首先计算所有右值,再一次完成赋值操作


输出:
5 3

注:赋值操作,必须确保左右值类型相同


未使用错误

带着一点php经验在去学习go,真心有点不习惯,不过没办法,还得改,希望后面两者别搞混了。

在go里面编译器会将未使用的局部变量当做错误抛出


输出:
.2.1var.go:47:2: x declared but not used

内建变量类型

类型

  • bool, string
  • (u)int, (u)int8, (u)int8, (u)int16, (u)int32, (u)int64, unitprt(指针)
  • byte, rune(go语言内字符型,等同于char,长度32位)
  • float32, float64, complex64(复数 实部,虚补 各32位), complex128 (复数 实部,虚补 各64位)

强制类型转换

  • 类型转换是强制的

变量定义要点

  • 变量类型写在变量名之后
  • 编译器可推测变量类型
  • 没有char类型 ,只有rune
  • 支持复数类型
最后修改:2020 年 11 月 26 日 02 : 31 PM