golang学习记录(3)
变量和常量
go是一种静态语言,变量的类型是在编译阶段确定的。
变量必须先定义后使用
变量必须要有类型
变量类型定下来后不能改变
1、变量
1.1、定义变量的方式
1
2
3
4
5
6
7
// 第一种
var age int (string bool 等)
age = 10
// 第二种
var age = 10
// 第三种
age := 10
1.2、全局变量和局部变量
全局变量:在函数外部定义的变量,作用域为整个包
局部变量:在函数内部定义的变量,作用域为函数内部
注:全局变量定义之后可以不使用,但是局部变量定义之后必须要使用
1.3、多变量定义
1
2
3
4
5
6
7
8
9
10
11
// 第一种
var user1, user2, user3 string
// 第二种
var user1, user2, user3 = "user1", 1, true
// 第三种
var (
user1 string
user2 int
user3 bool
)
1.4、注意事项
1、变量必须事先定义 2、公式静态语言,要求变量类型和赋值类型一致 3、变量名不能冲突 4、简介变量定义不能作为全局变量(age := 1) 5、变量有零值,也就是默认值
1
2
3
var age int //age默认为0
var name string //name默认为""
var isOk bool //isOk默认为false
6、全局变量定义之后可以不使用,但是局部变量定义之后必须要使用,否则会报错
2、常量
常量,是在定义的时候就指定的值,不能修改
在go语言中,常量定义的时候尽量全部大写,便于区分
2.1、定义常量的方式
1 2 3 4 5 // 第一种 const PI float32 = 3.1415926 //显示定义 const PI = 3.1415926 //隐式定义 // 之后PI不能改变 PI = 3.1415926 //报错
2.2、多变量定义
变量在成组进行定义是也有多种方式
1
2
3
4
5
const(
PI float32 = 3.1415926
PI2 = 'a'
PI3 = 3
)
特别的:
1
2
3
4
5
6
7
cosnt(
x int = 1p
y
s = 'a'
z
m
)
2.3、注意事项
1、常量类型只能是bool、数值和字符串 2、常量没有强制使用的要求,定义之后可以选择不使用 3、显示指定类型的时候,必须保证常量左右值类型一致
3、iota
一种能够被编译器修改的特殊常量
3.1、iota的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//写法1
const (
ERR0 = iota
ERR1 = iota
ERR2 = iota
ERR3 = iota
ERR4 = iota
)
// 输出为:0、1、2、3、4
//写法2
const (
ERR0 = iota
ERR1
ERR2
ERR3
ERR4
)
// 输出也为0、1、2、3、4
iota内部有同一个计数器,自己递增,不受赋值的影响
出现新的const时,iota会归零
3.2、注意事项
1、如果中断了iota必须显示恢复,后续会自动递增 2、iota默认类型是int型 3、iota能简化const类型的定义 4、每次出现新的const之后iota会归0
4、匿名变量
用下划线进行标识,不使用不会报错
如:var _ int = 10
在go语言中,匿名变量是指没有名字的变量。匿名变量在函数中经常被用作占位符,用于接收函数返回的多个值中的一部分。 下面是一个应用场景的举例:
5、变量的作用域
5.1、全局变量
在函数外部定义的变量,作用域为整个包。
5.2、局部变量
在函数内部定义的变量,作用域为函数内部。
有严格限制,在使用的时候需要注意。
本文由作者按照 CC BY 4.0 进行授权