go语言第三天 | 青训营笔记

67 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

本次学习了一些代码规范和注释相关的内容

go语言中if和else的嵌套结构很关键

下面我写一个比大小的小案例

        a, b, c := 40, 50, 30
	if a > b {
		if a > c {
			fmt.Println("a最大")//a大于b这时判断a是否大于c如果是则a最大
		}
	} else {//否则 a<=b
		if b > c {
			fmt.Println("b最大")//a小于b这时判断b是否大于c如果是则b最大
		} else {
			fmt.Println("c最大")//否则c最大
		}
	}

下面我再介绍一些函数在go语言中switch语句不需要break来终止当前的switch语句,而在c语言中,如不使用break结束语句 则会继续执行下一个case在,如想要达到c语言相同的效果 则需要fallthrough来穿过case语句

e := 100
switch e {
	case 100:
		fmt.Println("满")
		fallthrough
	case 90, 99, 70:
		fmt.Println("分")
	default:
		fmt.Println("woo!")
	}

image.png

在go语言中case语句后可以跟上bool表达式比如:

e := 100
switch {
	case e == 100:
		fmt.Println("满分")
	case e > 90 && e <= 100:
		fmt.Println("a")
	case e > 60 && e <= 90:
		fmt.Println("b")
	default:
		fmt.Println("c")
	} 

image.png

break语句用于退出for循环,sswitch语句,select语句,continue与break类似但只是退出本次循环

        for i := 0; i < 10; i++ {
		if i%2 == 0 {
		continue	
		}
		fmt.Printf("i: %v\n", i)
	}

这一函数可以筛选出从一到十的所有奇数

range函数可以实现遍历其返回值有索引和数值搭配for循环可以实现各种数据结构的遍历

var a = [...]int{1, 2, 3, 4, 5, 6}
	for s, v := range a {
		fmt.Printf("s: %v\n", s)
		fmt.Printf("v: %v\n", v)
	}

image.png

图这一数据结构创建时需要make函数来帮助创建其有两个参数一个是数据类型,一个是长度

s := make(map[string]string, 0)
	s["name"] = "tom"
	s["gender"] = "male"
	s["age"] = "88"
	for l, v := range s {
		fmt.Printf("标签: %v   数据:%v\n", l, v)

	}

image.png