Go语言学习:条件判断、循环、数组、切片

Go语言学习

循环

Go语言仅支持循环关键字for

条件循环一

for (j := 0; j < 10; j++) {
    fmt.Println(n)
}

条件循环二

n := 0
for n < 10 {
    n++
    fmt.Println(n)
}

无限循环

for {
    //需要无限循环的代码
}

if条件

go语言支持多返回值,v,err为自定义函数someFun()的两个返回值。在;前得到someFun的返回值,在;后可以直接使用

if v,err := someFun(); err==nil {
    //err为空的操作
} else {
    //报错执行的操作
}

switch条件

go语言中switch的case中支持多个项

for i:=0; i < 5; i++ {
    switch i{
    case 0,2:
        t.Log("Even")
    case 1,3:
        t.Log("Odd")
    default:
        t.Log("else")
    }
}

swich的case也可以代替复杂的if else。

go语言自带每个case中默认会带有break,所以break不用写

func TestSwitchCase(t *testing.T) {
	for i := 0; i < 5; i++ {
		switch {
		case i < 3:
			t.Logf("%d 小于 3", i)
		case i < 5:
			t.Logf("%d 大于2小于5", i)
		}
	}
}

数组

数组的声明

var a [3]int //声明数组后,数组内默认会是零值
a[0] = 1

b := [3]int{1,2,3}			//声明同时初始化
c := [...]int{1,2,3,4}
d := [2][2]int{1,2},{3,4}	//多维数组初始化

数组的遍历

arr := [...]int{1,2,3,4}
for i := 0; i < len(arr); i++ {
    t.Log(arr[i])
}

for idx,elem := range arr {
    fmt.Println(idx, elem)
}

数组的快速截取

a := [...]int{1,2,3,4,5}
a[1:2]  //2
a[1:3]  //2,3
a[1:len(a)] //2,3,4,5
a[1:]   //2,3,4,5
a[:3]   //1,2,3

切片

切片是共享的存储结构,与数组的区别,没有三个点

//第一个参数:长度
//第二个参数:容量

func TestSliceInit(t *testing.T) {
    //数组的区别,没有三个点
    var s0 []int
    t.Log(len(s0),cap(s0)
    s0 = append(s0, 1)
    t.Log(len(s0), cap(s0))
          
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值