Package main
import "fmt"
//常量定义
const PI = 3.1415926535
const msg = "hello"
const(
z = false
a = 123
)
const x, y = "xxxx", "yyyy"
const(
Sunday = iota //0
Monday //1
TuesDay //2
)
//if流程,条件判断没有小括号
if a==2{
fmt.Println("ddd","ccc")
//if可以进行一次初始化变量操作
}else if b:=0;b==3{
fmt.Println("ccc")
}else{
fmt.Println("zzz")
}
//for循环流程
//初始化一个变量
c:=0
for c<=3{
fmt.Println("aaa")
}
//常规操作
for d:=0;d<=3;d++{
}
//死循环或者符合条件跳出
for{
if a==2{
fmt.Println("aaa")
break
}
fmt.Println("ccc")
}
//通过range来执行循环
for i:= range array1{
fmt.Println(i)
}
//获取map的key和value
for k,v:=range map1{
fmt.println(k)
fmt.Println(v)
}
//_作为一个空值,可以只获取j的值
for _,j :=range map2{
fmt.Println(j)
}
//switch条件判断,这里注意和select的区分,select是通道中特有的条件选择
i:=0
switch i{
case 1:
fmt.Println("")
case 2:
fmt.Println("2")
default:
fmt.Println("over")
}
//通过case做判断的,类似于if
switch{
case i<1:
fmt.Println("")
case i>3:
fmt.Println("")
default:
fmt.Println("")
}
//切片slice和数组array,数组必须指定大小,切片不用指定大小
//通过make来创建切片[0,0,0]
slice1:=make([]int,3)
//为切片添加元素 [0,0,0,1,2,3]
slice1 = append(slice1, 1, 2, 3)
//删除元素[0 0 2 3]
slice1 = append(slice1[0:2], slice1[4:]...)
//复制元素
slice2 := []int{1,2,3,4,5,6,7,8,9,10}
slice3 := make([]int, 3, 6)
n := copy(slice3 , slice2 )
//建立一个数组
var array1 = [5]int{1, 2, 3, 4, 5}
//建立一个不定长度的数组, ...不可省略,不然就是切片了
var array2 = [...]int {1,2,3}
//指定特定位置的数值
var array3 = [10]int{1:3, 5:9}
make的用法还不是很了解,主要是第三个参数cap
还有切片的内部处理也不是很清楚