go语言笔记(运算符,控制语句)
1、运算符
由于go的运算符与c语言相差不大,所以不作详细说明
-
算术运算符
+,-,*,/,%,++,– -
关系运算符
==,!=,>,<,>=,<= -
逻辑运算符
&&,||,! -
位运算符
&,|,^,<<,>> -
赋值运算符
=,+=,-=,*=,/=,%=,<<=,>>=,&=,^= -
与指针有关的运算符
&,* -
优先级
2、控制语句
(1)条件语句
- if语句的用法与其他语言差不多,其要判断的表达式不用加括号。
- switch语句与c的用法一样,要注意的是case执行完之后会自动中断,如果要继续执行后面的
case
,要执行fallthrough,但不再匹配后续的表达式 ,其中fallthrough
一定要放在case块结尾,case后面也可以接表达式。
switch x :=5;x {
case 5:
x++
fmt.Println(x)
fallthrough
case 3:
x++
fmt.Println(x)
fallthrough
case 2:
x++
fmt.Println(x)
}
运行结果为
6
7
8
- select语句:select语句与switch语句的用法差不多,不同的是运行select语句先会判断哪个case是可运行的,如果有多个case可以运行,则随机选取一个case运行,若没有一个case可以运行,就会造成堵塞。
(2) 循环语句
- go中的循环只有for语句
for i := 0; i < 4; i++ {//和c语言一样
}
for i < 3 { //相当于while语句
}
for { //相当于while true()
}
- for …range语句可以完成数据的迭代,支持字符串,数组,数组指针,切片,字典,通道类型,返回索引,键值数据。可用"_"忽略变量。
data := [3]string{"a","b","c"}
for i , s:=range data{
fmt.Println(i,s)
}
运行结果:
0 a
1 b
2 c
data := [3]string{"a","b","c"}
for _ , s:=range data{ #忽略第一个变量时
fmt.Println(s)
}
运行结果:
a
b
c