go基本型別和運算子
阿新 • • 發佈:2019-02-08
bool
一個簡單的列子:
var a bool = ture
bool值只有false和true。兩個相同的型別之間可以通過 == 或者 != 來比較獲取一個bool值。
比如:
var a = 1
a == 5 //false
a == 1 //true
a != 2 //true
a != 1 //false
go對於值之間的比較非常嚴格,只有兩個相同的型別的值才可以進行比較。如果其中一個值是常量,那麼另外一個的值必須是跟該常量型別相容。
bool的常量和變數也可以通過邏輯運算子 非!和&& 或|| 結合來產生出另一個bool值。
好的命名可以提升程式碼的可讀性 ,對於bool的值,例如is或者Is開開頭的IsSorted。
數字型別
整型int和浮點型float
整數:
- int8(-128 -> 127)
- int16(-32768 -> 32767)
- int32(-2,147,483,648 -> 2,147,483,647)
- int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
無符號整數: - uint8(0 -> 255)
- uint16(0 -> 65,535)
- uint32(0 -> 4,294,967,295)
- uint64(0 -> 18,446,744,073,709,551,615)
浮點型(IEEE-754 標準): - float32(± 1e-45 -> ± 3.4 * 1e38)
- float64(± 5 1e-324 -> 107 1e308
go中沒有float型別,整型的零值為0,浮點型的零值為0.
float32精確到小數點後7位,float64精確到小數點15位。所以在比較浮點數時需要非常小心。
開發中儘量使用float64,因為math包中所有關於數學運算的函式都會要求接收這個型別。
go不允許不同型別之間的混合使用,但是對於常量的限制非常少,所以允許常量之間的混合使用。
package main
func main() {
var a int
var b int32
a = 15
b = a + a //錯誤
b = b + 5 //5是常量
}
複數
go有兩種複數:
complex64
complex128
複數用re+imI來表示,re代表實數部分,im代表虛數部分,I代表根號負1。
運算子
邏輯運算子
== , !=, < , <=, > ,>=
算數運算子
二元運算子 + - * /
取餘 %
自增自減 (+=, ++) -= *= /= %=
運算子優先順序
優先順序 運算子
7 ^ !
6 * / % << >> & &^
5 + - | ^
4 == != < <= >= >
3 <-
2 &&
1 ||
類型別名
當你在使用某個型別時,你可以給他另起一個名字,然後使用這個新名字。
package main
import "fmt"
type newint int
func main() {
var a newint = 2
c := a + 2
fmt.Println("c = %d", c)
}
微信搜尋「goentry-xyz」,關注公眾號「燈下獨碼」