运算符简介
运算符是一种特殊的符号,用来表示数据的运算、赋值和比较等 我们通常将运算符分为一下几大类
1. 算术运算符
算术运算符一般是对数值类型的变量进行加减乘除等运算的
运算符 | 运算 | 例子 | 结果 |
---|---|---|---|
+ | 正号 | +2 | 2 |
- | 负号 | -2 | -2 |
+ | 加号 | 2+2 | 4 |
- | 负号 | 4-2 | 2 |
* | 乘号 | 4*2 | 8 |
/ | 除号 | 4/2 | 2 |
% | 取模|取余 | 9%2 | 1 |
++ | 自增 | var a=1 a++ | a=2 |
- - | 自减 | var a=2 a- - | a=1 |
+ | 字符串相加|字符串拼接 | “abc”+“defg” | “abcdefg” |
使用时注意事项
- 对于除号/,它的整数除和小数除是有区别的;整数之间做除法时,只保留整数时部分而舍弃小数部分。不会进行四舍五入等。例:x:=50/9 结果是5
- 当对于一个数取模时可以等价于a%b=a-a/b*b
- 对于++和–来说只能独立运算;不能a:=b++或者b:=a-- ;也不能写在变量的前面只能是a++或者b–;而不能++a或者–b
2. 赋值运算符
赋值运算就是将某个运算后的值赋给指定的变量
运算符 | 运算 | 例子 | 解释 |
---|---|---|---|
= | 简单的赋值 | c=a+b | 将a+b的结果赋给了c |
+= | 相加后赋值 | c+=a | 相当于c=c+a |
-= | 相减后赋值 | c-=a | 相当于c=c-a |
*= | 相乘后赋值 | c*=a | 相当于c=c*a |
/= | 相除后赋值 | c/=a | 相当于c=c/a |
%= | 取余后赋值 | c%=a | 相当于c=c%a |
3. 比较运算符|关系运算符
关系运算符的结果都是bool型;要么是true要么是false
运算符 | 运算 | 例子 | 结果 |
---|---|---|---|
== | 相等 | 5==5 | true |
!= | 不等于 | 5==5 | true |
> | 大于 | 5>5 | false |
< | 小于 | 5<5 | false |
>= | 大于等于 | 100>=5 | true |
<= | 小于等于 | 5<=100 | true |
4. 逻辑运算符
一般用于连接多个条件(关系表达式),最终的结果也是bool型
运算符 | 运算 | 例子 | 结果 | 解释 |
---|---|---|---|---|
&& | 并且 | a==b&&c==d | true | 俩边都成立才是true 如果有一边不成立结果为fasle |
|| | 或者 | a==c||b==d | true | 俩边有一个成立则等式成立返回true;如果俩边都不成立;结果为fasle |
! | 非 | a==2 !a | false | 判断前结果为true 非后结果为fasel反之亦然 |
代码里面在解释一下
package main
import "fmt"
func main(){
var a int=10
var b int=20
var c int=10
var d int=40
f:= a==c &&b==d
//&&俩边结果都为true 才返回true; 其中有一个为fasle 那么结果也为fasle
fmt.Printf("f: %v\n", f)//结果为fasle
f=a==c||b==d
//||俩边结果中有一个为true 其结果返回true; 都为fasle 那么结果也为fasle
fmt.Printf("f: %v\n", f)//结果为true
var e bool=true
f=!e
//!前结果为true;那么!后结果为fasle;反之亦然;取反的意思
fmt.Printf("f: %v\n", f)//结果为fasle
}
5. 位运算符
运算符 | 运算 | 解释 |
---|---|---|
& | 按位与 | 俩位全为1,结果为1,否则为0 |
| | 按位或 | 俩位有一个为1,结果为1,否则为0 |
^ | 按位异或 | 俩位一个为0一个为1,结果为1,否则为0 |
<< | 右移运算符 | 低位溢出,符号位不变,并用符号位补溢出的高位 |
>> | 左移运算符 | 符号不变,低位补0 |
6. 其他运算符
运算符 | 运算 | 解释 |
---|---|---|
& | 返回变量的地址 | &a 将返回变量a的地址 |
* | 指针变量 | *a,声明一个指针变量 |
go中得流程控制注意事项
- 对if 的使用
//if的使用
if a:=20;a==20{
fmt.Printf("a: 我还可以这样使用%v\n", a)
}
- switch的使用
1. case 后是一个表达式【常量,变量,一个有返回值的函数等都可以】
2. case 后的各个表达式数据类型必须和switch的表达式数据类型一致
3. case 后面的表达式如果是常量值,则要求不能重复
4. case 后面的可以带多个表达式,使用逗号分隔
5. case 后面不需要跟着break,程序默认是自己添加了break
6. default 不是必须的 请注意使用