Go 变量和常量
最近在看Go相关的书籍,看到go相关的语法,非常的简洁和亮眼,就准备学习一下相关的资料,将自己看到的书籍记录一下笔记,补充一下工作之余的相关知识。先开始Go的语法
一:变量
1.0:变量申明
var a int //定义一个整形变量
var b string //定义一个字符串
var c [10]int //定义一个整形的数组
var d []int //定义一个整形的数组切片
var e *int //定义一个整形的指针
var f map[string]interface{} //定义一个字典集合
var func( value int) int //定义一个函数
var (
v1 int
v2 string
) //定义多个变量
1.1:变量的初始化
var v1 int= 10 // 正确的使用方式1
var v2 = 10 // 正确的使用方式2,编译器可以自动推导出v2的类型
v3 := 10 // 正确的使用方式3,编译器可以自动推导出v3的类型 =>var v3 int v3=10(v3:=10错误 )
1.2:变量的赋值
除了上面的变量初始化赋值外,Go有一个很特色的赋值(多重赋值)
i,j:=j,i 等价于下面
var i int =10
var j int =11
var temp int
temp=i
i=j
j=temp
这个赋值非常有特色,特别是比较大小的时候,简化了代码工作量,并且看着很舒服
1.3:匿名变量
在多返回值的时候,当我们只想获取指定的返回值,我们在这种情况可以使用"_"来代表一个变量,如下所示
func GetName() (firstName, lastName, nickName string) {
return"May", "Chan", "Chibi Maruko"
}
var name string
_,_,_,name=GetName()
二:常量
2.0:字面上的常量
指程序中硬编码的常量 如-12 ,1 。。等等
2.1:常量的定义
const Pi float64= 3.14159265358979323846
const zero = 0.0 // 无类型浮点常量
const (
size int64= 1024
eof = -1 // 无类型整型常量
)
const u, v float32= 0, 3 // u = 0.0, v = 3.0,常量的多重赋值
const a, b, c = 3, 4, "foo"
注意:常量的定义是在编译期的行为,所以右边的赋值不能是运行期间得到的值 例如:const v2 int=os.GetEnv("Home")
2.2:预定义常量
Go中预定义的常量 有三种 true ,false 和itoa 其中itoa比较特殊,如下
const (
i=itoa =>0
j=itoa =>1
k=itoa =>2
)
在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增1
2.3:枚举
学过C#的人都知道 枚举是一系列相关的变量,除了关键字区别外,内容都差不多,如下例子
const(
Sunday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
今天先到这里了,明天继续学习类型,坚持。。