由于之前学习过C语言,而且老师也是以大家都学习过C语言为前提讲解的,所以在学习GO语言的过程中,我一直在与C语言对比着学习。相信青训营其他同学的情况也是类似的。所以这篇学习笔记是以C语言为基础的。
一、变量
在Go 语言中,变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的一般形式是使用 var ,也可以使用冒号和等号的组合,在声明的同时初始化初值
与c语言相同,字符串仍然需要用双引号括住;赋值也是直接使用等号
var a = "initial" //不指定变量类型,根据值自动判定变量类型
var b, c int = 1, 2 //指定变量类型
var d = true //bool型变量
var e float64
f := 1
var g int //先指定类型
g=1 //再赋值
二、切片(Slice)
Go语言中,数组的长度不可改变,与数组相比,切片(Slice)的长度是不固定的,可以追加元素,更强大更灵活。
可以通过声明一个未指定大小的数组来定义切片,不需要说明长度;
或者使用 make() 函数来创建切片
s := make([]string, 3) //初始化切片
s[0] = "a"
s[1] = "b"
s[2] = "c"
fmt.Println("get:", s[2]) //输出结果为c
s = append(s, "d", "e") //追加
fmt.Println(s) //输出结果 [a b c d e]
三、Map
老师说:在其它语言中,Map可能叫做哈希或字典,是在实际中使用最频繁的数据结构。
map的本质是一种无序的键值对的集合,与哈希和哈希查找进行对比,就比较好理解了。
m := make(map[string]int,2) //使用make函数初始化map
m["one"] = 1
m["two"] = 2
在这个例子中String 是KeyType键的类型,int是ValueType值的类型,2是可选的参数initialCapacity,用于指定 Map 的初始容量。Map 的容量是指 Map 中可以保存的键值对的数量,当 Map 中的键值对数量达到容量时,Map 会自动扩容。如果不指定 initialCapacity,Go 语言会根据实际情况选择一个合适的值。
GO语言提供了对于map的增删改查,此处不赘述。另外,Map的数据是无序的,因此在输出的时候,是按一个随机的顺序输出的。