一,算术运算
整型、浮点、复数 支持 + – * /
%:取余只支持整型。
自增++和自减– :只支持整型
+:支持字符串,拼接两个或多个字符串内容
ps:
(1)/只取整,不会进行四舍五入。
(2)二元运算必须是同类型的数据。
package main import ( "fmt" ) func main(){ var a int = 100 var b int = 200 var c string = "Go" var d string = "语言" result1 := a+b result2 := a-b result3 := a*b result4 := a/b result5 :=a%b result6 := c+d fmt.Println(result1,result2,result3,result4,result5) fmt.Println(result6) }
输出结果:
300 -100 20000 0 100
Go语言
错误案例说明:二元运算必须是同类型的数据,否则报错
var a int32 = 100 var b int64 = 200 sum :=a+b fmt.Println(sum) 会直接报错: invalid operation: a + b (mismatched types int32 and int64)
二,位运算符
只适用于整型。了解。
二元位运算: 按位与& 、按位或|、按位异或^、位清除&^、位左移<<、位右移>>
一元位运算:按位补足^。^X等同与m^X,当X为无符号整型,全部位设置为1;当X为有符号整型,m=-1
package main import ( "fmt" ) func main(){ var a int8 = 1 var b int8 = 2 fmt.Printf("%b %b\n",a,b) fmt.Printf("%b %d\n",a & b,a & b) fmt.Printf("%b %d\n",a | b,a | b) fmt.Printf("%b %d\n",a ^ b,a ^ b) } 输出结果: 1 10 0 0 11 3 11 3
三,比较运算
通过比较两个基本数据类型的数据大小决定结果为布尔值true或false。
比较运算符:
==、!=、>、< 、>=、< =
package main import "fmt" func main(){ var a int = 1 var b int = 2 var x = 'A' var y = 'a' var c string = "hello" var d string = "Hello" fmt.Println(a == b) fmt.Println(a != b) fmt.Println(a > b) fmt.Println(a >= b) fmt.Println(a < b) fmt.Printf("字母x:%c 大于字母y:%c吗?:%v\n",x,y,(x > y )) fmt.Printf("字符串c:%s 大于字符串:%s吗?:%v\n",c,d,(c > d)) }
运行结果:
false
true
false
false
true
字母x:A 大于字母y:a吗?:false
字符串c:hello 大于字符串:Hello吗?:true
注意:不同类型的变量,进行比较会直接报错。
四,逻辑运算
逻辑与或非,主要用来做判断使用。
逻辑与:&&
逻辑或:||
逻辑非:!
package main import "fmt" func main(){ var a int = 1 var b int = 2 var x int = 10 var y int = 100 var hostname *string fmt.Println((a>b) && (x<y )) fmt.Println((a>b) || (x</y><y )) fmt.Println(!(x<y)) if hostname == nil{ fmt.Printf("hostname is empty,please input hostname\n") } }
输出结果:
false
true
false
hostname is empty,please input hostname