这是我参与「第五届青训营 」伴学笔记创作活动的第1天
太哈人啦! 这几天在唠嗑群看各位大佬组队的自我介绍, 怎么都这么厉害啊! 没事, 还是写点笔记吧, 我只要能比自己有进步就好了~
1. 变量声明
Go语言的变量声明标准格式为:var 变量名 变量类型
Go语言还支持批量变量声明, 能稍微省去写几个var关键字
var (
a string
b int
c bool
d float32
)
关于变量初始化, Go语言不存在未初始化的变量. 如果没有指定值, 变量会被初始化成该类型的默认值.
如果想要忽略某个变量的值, 可以使用 _ 表示一个匿名变量. 匿名变量不占用命名空间, 不会分配内存, 也不存在重复声明的问题.
而常量在定义的时候必须赋值.
批量声明常量时, 如果省略了值, 则表示和上面一行的值相同. 以下代码表示n2, n3的值都为100.
const (
n1 = 100
n2
n3
)
2. 常量计数器
iota 是go语言的常量计数器, 使用 iota 定义枚举时很有用.
一些示例:
const (
n1 = iota //0
n2 //1
_ //跳过
n4 //3
)
const (
n1 = iota //0
n2 = 100 //100 插队
n3 = iota //2
n4 //3
)
const n5 = iota //0
3. 数据类型
Go的数据类型分四大类:
基础类型(basic type):包括数字(number)、字符串(string)和布尔型(boolean)
聚合类型(aggregate type):数组(array)和结构体( struct)
引用类型(reference type):引用是一大分类,其中包含多种不同类型,如指针( pointer),slice,map,函数( function),以及通道(channel)
接口类型(interface type)
4. 流程控制
Go语言的流程控制感觉就很简单, 而且没有什么花样, 这样其实也减少了代码风格冲突.
if else
if 表达式1 {
分支1
} else if 表达式2 {
分支2
} else{
分支3
}
for
for 初始语句;条件表达式;结束语句{
循环体语句
}
range
func main() {
var a = [...]string{"北京", "上海", "深圳"}
for index, value := range a {
fmt.Println(index, value)
}
scoreMap := make(map[string]int)
scoreMap["张三"] = 90
scoreMap["小明"] = 100
scoreMap["娜扎"] = 60
for k, v := range scoreMap {
fmt.Println(k, v)
}
}