1. 算術運算符
注意: ++(自增)和--(自減)在 Go 語言中是單獨的語句,并不是運算符。
package mainimport "fmt"func main() {fmt.Println("10+3=", 10+3) // 13fmt.Println("10-3=", 10-3) // 7fmt.Println("10*3=", 10*3) // 30// 除法注意:如果運算的數都是整數,那么除后,去掉小數部分,保留整數部分fmt.Println("10/3=", 10/3) // 3fmt.Println("10.0/3=", 10.0/3) // 3.3333333333333335// 取余注意 余數=被除數-(被除數/除數)*除數fmt.Println("10%3=", 10%3) // 1fmt.Println("-10%3=", -10%3) // -1fmt.Println("10%-3=", 10%-3) // 1fmt.Println("-10%-3=", -10%-3) // -1}
注意:在 golang 中,++ 和 -- 只能獨立使用,錯誤寫法如下:
var i int = 8
var a int
a = i++ //錯誤,i++只能獨立使用
a = i-- //錯誤, i--只能獨立使用
注意:在 golang 中沒有前++ 和前--,錯誤寫法如下:
var i int = 1
++i // 錯誤,在 golang 沒有 前++
--i // 錯誤,在 golang 沒有 前--
fmt.Println("i=", i)
2. 關系運算符
示例代碼如下:
package main
import "fmt"func main() {var a1 = 9var a2 = 8fmt.Println(a1 == a2) // falsefmt.Println(a1 != a2) // truefmt.Println(a1 > a2) // truefmt.Println(a1 >= a2) // truefmt.Println(a1 < a2) // flasefmt.Println(a1 <= a2) // flaseflag := a1 > a2fmt.Println("flag=", flag) // flag=truevar a3 = 9var a4 = 14flag := a3 > a4if flag {fmt.Println("a3>a4") // a3>a4}var a5 = 9var a6 = 8if a5 == a6 {fmt.Println("a4=a6") } else {fmt.Println("a5!=a6") // a5!=a6}}
3. 邏輯運算符
package main
import ("fmt")
func main() {var age int = 40// 演示邏輯運算符的使用 &&if age > 30 && age < 50 {fmt.Println("ok1") // ok1}if age > 30 && age < 40 {fmt.Println("ok2")}// 演示邏輯運算符的使用 ||if age > 30 || age < 50 {fmt.Println("ok3") // ok3}if age > 30 || age < 40 {fmt.Println("ok4") // ok4}// 演示邏輯運算符的使用 !if age > 30 {fmt.Println("ok5") // ok5}if !(age > 30) {fmt.Println("ok6")}
}
邏輯運算符短路演示:
package main
import ( "fmt")
func test() bool {fmt.Println("test...")return true
}
func main() {var i int = 10if i < 9 && test() {fmt.Println("ok...")}if i > 9 || test() {fmt.Println("hello...")}
}
4. 賦值運算符
package main
import "fmt"
func main() {var a = 10a += 3 fmt.Println(a) // 13var b = 10b -= 3 fmt.Println(b) // 7var c = 10c *= 3 fmt.Println(c) // 30var d = 10d /= 3 fmt.Println(d) // 3var e float64 = 10e /= 3 fmt.Println(e) // 3.3333333333333335var f = 10f %= 3 fmt.Println(f) // 1}
5. 位運算符
位運算符對整數在內存中的二進制位進行操作。
package mainimport "fmt"func main() {var a int = 5 // 101var b int = 2 // 010fmt.Println("a&b=", a&b) // 000 (值 0)fmt.Println("a|b=", a|b) // 111 (值 7)fmt.Println("a^b=", a^b) // 111 (值 7)fmt.Println("5>>2=", a>>b) // 1 (5右移2位)fmt.Println("5>>1=", 5>>1) // 10 (5右移1位)fmt.Println("7>>2=", 7>>2) // 1 (7右移1位)fmt.Println("5<<2=", a<<b) // 10100 (5左移2位)fmt.Println("5<<1=", 5<<1) // 1010 (5左移1位)}
6. 運算符練習
1. 練習:有兩個變量a和b,要求將其進行交換,最終打印結果。
package main
import "fmt"
func main() {var a = 34var b = 10t := a // t=34a = b // a=10b = t // b=34fmt.Printf("a=%v b=%v", a, b)}
2.?練習:有兩個變量a和b,要求將其進行交換,不能使用中間變量,最終打印結果。
package main
import "fmt"
func main() {var a = 34var b = 10a = a + b // a=34+10 =>44b = a - b // b=34+10-10=>34a = a - b // a=(34+10)-(34+10-10)=>10fmt.Printf("a=%v b=%v", a, b)}
3.?練習:假如還有100天放假,問:多少個星期零多少天。
package main
import "fmt"
func main() {var days = 100var week = days / 7var day = days % 7fmt.Printf("距離放假還有%v周零%v天", week, day)}
4.?練習:定義一個變量保存華氏溫度,請求出華氏溫度對應的攝氏溫度。
華氏溫度轉換攝氏溫度的公式為:C=(F-32)÷1.8,攝氏溫標(°C)和華氏溫標(°F)
package main
import "fmt"
func main() {var F float32 = 100 // 華氏溫度C := (F - 32) / 1.8fmt.Printf("華氏溫度對應的攝氏溫度是%.2f", C)
}