1.go语言是一门强类型语言,每个变量有自己的变量类型如 字符串,整数,浮点数等类型。一般有两种声明方法,go语言可以自动推导变量的类型,注意:在go语言中未被使用的变量声明属于语法错误
var a = "string"
b := "string"
2.if else语句,与C等语言类似,但不同点在于条件语句没有小括号的包裹,且必须将执行语句的大括号的前部分置于条件判断语句的后面
if isTrue {
do1()
}else if !isTrue {
do2()
}
3.循环语句,go语言中没有while循环,do while循环,只有唯一的for循环,可以在for后面什么都不写,代表一个死循环,可以通过break跳出循环,或者continue继续循环
for {
ftm.Println("dead")
}
for i := 0; i < 5 ; i++ {
if i%2 == 0 {
ftm.Println(i)
}
}
4.switch语句,go语言中的switch依然与c语言类似,且在条件语句中不需要括号的包裹,且不需要在每种情况下添加break语句以阻止其他情况的运行
num := 5
switch num{
case 1:
fmt.Println("1")
....
case 5:
fmt.Println("5")
5.数组,切片。在go语言中数组基本被切片替代了其功能,切片类似于一个任意长度的数组,可以根据使用 情况不断加长,通过make来创建切片,切片通过存储容量长度和指向数组的指针来实现任意长度的数组。切片可以像python一样去除中间的部分,取左闭右开的规则,但不支持负数索引。
s := make([]string,3)
s[0] = "a"
S[1] = "b"
s[2] = "c"
s = append(s,"d")//必须将扩充后的新数组返回给原数组
6.map,key-value数据结构,通过make创建,需要key的类型与value类型就可以生成map,无序存储,遍历时随机顺序遍历
m := make(map[string]int)
m["beijing"] = 1
m["shanghai"] = 2
fmt.Println(m) //map[beijing:1 shanghai:2]
r, status :=m["zhejiang"]
fmt.Println(r,status) //0 false
7.函数,go语言中函数的变量类型是后置的,支持返回多个值,在业务中一般有两个返回值,一个是函数结果,一个是错误信息。
func add(a int, b int)(r int,s bool){
r = a + b
s = true
return r , s
}
总体看,有c语言等强语言类型基础可以快速上手go语言,但是在编写过程中可能会因为go语言的特殊语法格式导致不顺手,尤其是条件判断不需要小括号的包裹,以及函数类型后置,显得有些“离经叛道”