1、Go语言变量
每个变量都拥有自己的类型,必须经过声明才能开始使用
var a int //声明一个整形类型变量,可以保存整数数值,默认0
var b string //声明一个字符串类型变量,默认空
var c []float32 //声明一个32位浮点切片类型的变量,浮点切片表示由多个浮点类型组成的数据结构,默认0
var d func() bool //声明一个返回值为布尔类型的函数变量,此形式多用于回调函数,将函数以变量的形式报错,需要的时候重新调用,默认bool
var e struct{ //声明一个结构体类型的变量,这个结构体拥有一个整型的 x 字段。切片、函数、指针默认为null
x int
}
//以上可简写为:
var (
a int
b string
c []float32
d func() bool
e struct {
x int
}
)
//开发中最常见的是短变量声明的形式
hp := 10 //短变量左边变量如已存在会报错,多个短变量声明和赋值中,至少有一个新声明变量在做之中就不会报错
小结:Go声明变量的格式为:var 变量名 变量类型并且无需使用符号间隔,变量声明时自动对应内存进行初始化,不同类型有不同的默认值,也可在变量声明时赋予变量其他初始值即:var xa int = 100
声明int 类型变量 xa 初始值为100。又由于100和int 同为int类型,int可认为是冗余信息,简写为:var xa = 100
,如果对默认的类型有特定要求就要标明,如:var damageRate float32 = 0.17
编辑器会尽量提高精度,默认 damageRate变量精度为float64。
2、变量值交换
方式一:
var a int = 100
var b int = 200
a = a ^ b
b = b ^ a
a = a ^ b
fmt.Println(a, b)
方式二(左值右值按照从左到右的顺序赋值):
var a int = 100
var b int = 200
b, a = a, b
fmt.Println(a, b)
输出:200 100