概念和其他语言相似
数组
因为循环一本会用到数组,所以先学习了
声明方法
和普通变量有这类似的方法
如:var variable_name [SIZE] variable_type
一个例子看懂
数组可以被初始化也可以不被初始化
被初始化中有一个重要的点:可以给指定索引的变量初始化,如上面的array6
不被初始化的大小为初始化的size大小
当括号[]中没有size时会自适应大小,自适应的大小为值的数量,如第一个array,有四个值,那么size就为4.如果是指定初始化,就是最大的索引
注意:初始化指定数组大小不能给定义不同大小的数组变量赋值,如var array7 []int = [5]int{1,2,3},var array7 [7]int = [5]int{1,2,3},var array7 [7]int = []int{1,2,3}都是不行的
二维数组一样的,只是多添加一个[]
if条件语句
和python类似,没有括号
但是需要注意else和}{两个符号必须在一排,这么理解,go以每个单独}作为一个大语句分隔
if array == nil{
fmt.Println("条件成立")
} else {
fmt.Println("条件不成立")
}
switch语句
和c等语言类似。但是不需要break,也就是说,go语言默认情况一次只执行一个case里的语句,
如果不想这也,可以加入关键字fallthrough
语法:
switch var1 {
case val1:
...
case val2:
...
default:
...
}
例如:
这里还讲到一个Type switch
还不知道go的接口,先了解
注意:case中的值不能一样,如果多个条件成立,则执行第一个
select
这个也涉及到通道,先了解
select{
case communication clause:
statement(s)
case communication clause:
statement(s)
default:
statement(s)
}
communication clause是判断通道能否执行的条件,如果多个条件同时成立,就会随机选择一个执行,如果没有条件成立则执行default,如果连default也没有,则阻塞,等待直到某个条件成立
for循环
so 容易
和其他语言一样
如:
特殊(无限循环):
for ture{
expression
}
其他辅助语句:
break:退出循环
continue:推出当次循环,执行下一次
goto:和label:name一起使用,跳转到某条语句