go算术运算符 ,关系运算符,逻辑运算符等运算符
算术运算符
算术运算符就是加减乘除等操作。
+ 相加 A+B
- 相减 A-B
* 相乘 A*B
/ 相除 B/A
% 求余 B%A
++ 自增 A++ ,go中没有 ++A ,只有 A++ 。另外不能参与运算
-- 自减 A-- ,go中没有 --A ,只要A-- 。另外不能参与运算
示例1:相除示例1
num1 := 10
num2 := 3
num3 := num1 / num2
fmt.Println(num3) //输出 3 而不是3.333
fmt.Printf("%T", num3) //输出int
因为 num1和num2 都是int,所以结果也为int而不是float
示例2:相除示例2
num1 := 10
num2 := 3
num3 := float64(num1) / float64(num2) //除法需要转换为float64,否则不准确
fmt.Println(num3) //输出 3.3333333333333335
fmt.Printf("%T", num3) //float64
示例3:自增
num1 := 10
//num2 := num1++ //错误示例,自增或自减不能参与运算,需要单独一行
num1++
fmt.Println(num1) //输出11
关系运算符
关系运算符的结果都是 布尔值,true|false
用于if判断或循环结构条件中
注意,比较的时候,运算符两边的数据类型要一致
以下假定A为10,B为20
== 检查两个值是否相等 (A==B) 输出False
!= 检查两个值是否不相等 (A!=B) 输出True
> 检查左边的值是否大于右边的值 ( A > B ) 输出 False
< 检查左边的值是否小于右边的值 ( A < B ) 输出 True
>= 检查左边的值是否大于等于右边的值 ( A>=B ) 输出False
<= 检查左边的值是否小于等于右边的值 ( A<=B ) 输出True
示例1:
num1 := 10
num2 := "10"
println(num1 == num2) //无法编译,go为强类型语言,比较的数据类型不一致,报错了,
逻辑运算符
假定A值为True,B值为False
&& 逻辑and运算符,两边都为True,则结果为True,否则为 False
|| 逻辑 或运算符,两边至少一边为True,则结果为True,否则为False
! 逻辑not运算符,取反结果
示例1:
a := true
b := false
fmt.Println(a && b) //输出 false
fmt.Println(a || b) //输出 true
fmt.Println(!(a || b)) //输出false
位运算符
& | ^ 都是位运算符
注意区分 && 和 || 则是逻辑运算符
赋值运算符
假定A为21
= 赋值,将一个表达式的值赋给左边 C = A ,则C 等于 21
+= 相加后赋值 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
其他运算符
& 取地址符, &a,返回a变量的实际内存地址
* 指针变量 *a,表示一个指针变量
go不支持三元运算符
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/17270461.html