01
一:
自增(++)和自减(--)在go语言中视作是单独的语句,而非运算符。也就是意味着++和--只是被视作为“= i+1”和“=i-1”的简写。
二:
++和--并不能用在变量之前,只能用在变量之后。
02
一:
在Go语言中,位运算只对整数在内存中的二进制位进行操作。有与(同1为1)、或(有1为1)、异或(不同为1)、左移、右移五种操作。
二:
在对整数做数值比较或者数值转换时,可以考虑如何使用位运算,位运算由于直接对二进制进行操作,故而效率极高,适合于对性能要求严苛的场景。
03
一:
if条件判断有一种特殊写法,就是在首个if判断的表达式之前再添加一个执行语句。与平常的if写法不同,这里score变量只是if语句块中的局部变量,并不能在外部使用。
if score := 65; score >= 90 {
fmt.Println("A")
} else if score > 75 {
fmt.Println("B")
} else {
fmt.Println("C")
}
二:
假如用作判断的变量只用一次,而又想节省一些内存,则该种写法是可以使用的。
04
一:
for range可以用于遍历整数、数组、字符串、切片、map和通道。
数组、切片、字符串返回的是索引和对应元素值。
map返回的是键和值。
channel返回的是则是缓冲区中滞留的数据。
整数则是从0开始的累加遍历,止步于(num-1)。
二:
在只需要从开头到结束的遍历场景中,使用for range显然更加便捷,无需手动管理各类索引变量,当然有时也可以通过添加if语句判断使其遍历出条件需要的元素。
05
一:
goto通过标签来进行代码之间的无条件跳转。
二:
该语法对于多层嵌套中的代码结构有良好的效果,可以免去多个break,以及多个break条件判断的编写,避免重复退出,能够一步到位。
06
一:
break和continue同样可以通过添加要退出的循环的标签来退出循环。其中break可以结束for循环,switch判断和select判断,而continue仅限于for循环中。
二:
在多层嵌套的代码结构中,通过结束外层循环来一并结束内层循环,也不失为一种简洁的方法,且要比goto更有逻辑性和简明。