随心的博客

好记性不如个烂笔头,随心记录!

返回顶部

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

 因为 num1num2 都是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判断或循环结构条件中

注意,比较的时候,运算符两边的数据类型要一致

 

以下假定A10B20

== 检查两个值是否相等   (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值为TrueB值为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

 

 

位运算符

 &  | ^ 都是位运算符

注意区分 &&  || 则是逻辑运算符

 

赋值运算符

假定A21

=   赋值,将一个表达式的值赋给左边 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不支持三元运算符

posted @ 2023-03-29 21:38  yangphp  阅读(31)  评论(0编辑  收藏  举报