Go 变量
名称
Go中的函数、变量、常量、类型、语句标签和包的名称都必须以字母
(Unicode中的字符即可)或者下划线
开头,后面可以跟任意数量的字符、数字和下划线,并区分大小写
Go有25个关键字
,只能用在语法允许的地方,不能作为名称使用
break
default
func
interface
select
case
defer
go
map
struct
chan
else
goto
package
switch
const
fallthrough
if
range
type
continue
for
import
return
var
还有三十几个内置的预声明的常量、类型和函数:
常量:true
false
iota
nil
类型:int
int8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
uintptr
float32
float64
complex64
complex128
bool
byte
rune
string
error
函数:make
len
cap
new
append
copy
close
delete
complex
real
imag
panic
recover
由于这些名称不是预留的,所以可以对其中的名称进行重声明,但是这会产生冲突的风险
如下代码对new进行了重声明,并且可以正常运行:
变量声明和赋值
声明
类型和表达式部分可以省略一个,但不能都省略
如果省略类型,它的类型将由初始化表达式决定
如果省略表达式,初始化值取对应类型的零值
数字:
0
布尔:
false
字符串:
""
接口及引用类型:
nil
数组或结构体等复合类型,零值就是所有元素或成员的零值
可以一次性声明多个变量,忽略类型可以同时声明不同类型的变量
短变量声明
在函数中,一种称为短变量声明的可选形式,可以用来声明和初始化局部变量
var 声明通常是为那些跟初始化表达式类型不一致的局部变量保留的,或者用于后面才会对变量赋值以及变量初始值不重要的情况
赋值
最简单的形式是由赋值符=
以及符号左边的变量和符号右边的表达式组成
赋值规则:类型必须精准匹配,nil 可以被赋给任何借口变量或引用类型
变量的生命周期
包级别变量的生命周期是整个程序的执行时间
局部变量的声明周期从声明一个变量开始到它变得不可访问
变量的作用域
语法块是由大括号围起来的一个语句序列,在语法块中声明的变量对该语法块的外部不可见
评论