引言:该系列笔记,是本人自学Go过程中整理的笔记,供大家参考。
赋值的几种方式:
x = 1
*p = true
person.name = "Martin"
count[x] = count[x] * scale // 这种类型的赋值也可以写成下面这种形式
count[x] *= scale
在赋值之前,赋值语句右边的所有表达式将会进行求值,然后再统一对左边的变量进行赋值操作。
这样对去理解当赋值语句左右两边都有相同元素的情况下时,非常有帮助。
- 算两个值的最大公约数(greatest common divisor)
func gcd(x, y int) int {
for y != 0 {
x, y = y, x%y
}
return x
}
- 求斐波拉契第N个数
func fib(n int) int {
x, y := 0, 1
for i := 0; i < n; i++ {
x, y = y, x + y
}
return x
}
可赋值性
不管显式赋值还是隐式赋值,在赋值语句左边的变量和右边最终求到的值必须有相同的数据类型。
更直白地说,只有右边的值对于左边的变量是可赋值的,赋值语句才是允许的。