1.5 变量
一、先声明,再赋值
var 变量名 类型
变量名 = 值二、声明并赋值
var 变量名 类型 = 值
// 可以简写成
var 变量名 = 值备注:简写状态是由编译器判断变量名值的类型
三、声明并赋值的简洁写法
变量名 := 值注意:这种写法只现定于局部作用域,全局变量不可以使用
四、同时声明多个变量
var 变量1, 变量2 类型
var (
变量1 类型1
变量2 类型2
... ...
)备注:注意使用时,不同类型赋值会失败
五、一行声明并赋值多个变量
var 变量1, 变量2, ... = 值1, 值2, ...
变量1, 变量2, ... := 值1, 值2, ...六、值拷贝
直接赋值
var x = 10 // 变量赋值时会发生值拷贝,开辟新的空间,后续修改,互不影响 var y = x x = 20 fmt.Println(x) fmt.Println(y)结果:20 , 10
原因:变量赋值时会发生值拷贝,开辟新的空间,后续修改,互不影响
运算后赋值
var a = 1 + 1 fmt.Println(a) var b = x * y fmt.Println(b)结果:2, 200
原理相同,区别在于,a的1+1在运算后,非结果会被垃圾回收机制回收,x和y是变量,不会被回收,可反复使用
注意:没有变量接收的值,运算结束后会被回收
七、匿名变量
因为Go语言中强制要求,已定义的变量必须被使用,因此如果出现未使用函数就会报错,可以通过匿名变量_解决
var a, b = 1, 2
fmt.Println(a, b)
// 使用下划线"_"进行匿名变量使用,解决定义的变量未使用会报错的问题
var c, _ = 3, 4
fmt.Println(c)因为函数返回值,会出现部分返回值无用的情况,需要匿名变量进行处理
八、变量命名规范
规范:
变量名必须由数字、字母、下划线组成
标识符开头不能是数字
标识符不能是保留字或关键字
建议使用驼峰命名,当名字有多个单词时优先使用大小写分隔(小驼峰命名)
变量名尽量做到见名知意
变量命名区分大小写
25个关键字
- continueforimportreturnvar
const
fallthrough
if
range
type
chan
else
goto
package
swtich
case
defer
go
map
struct
break
default
func
interface
select
除上面25个外,新版GO语言中还有30多个预定义标识符,可分如下三类
常量相关预定义标识符:
true、false、iota、nil类型相关预定义标识符:
int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr、float32、float64、complex128、complex64、bool、byte、rune、string、error函数相关预定义标识符:
make、len、cap、new、append、copy、close、delete、complex、real、image、panic、recover
九、语句分割符
以英文你的分号
;或换行作为语句分割符推荐使用换行作为语句分割符
分号一般用于同一行中出现多条语句,有多大的病在非默认规范外一行进行多个语句操作
Last updated