在變量的定義中,咱們講了每一個變量是有類型的,類型在計算機中是用來約束數據的解釋。Go語言和其它計算機語言同樣,提供豐富了豐富的數據類型,咱們就來看看到底有哪些類型,同時也能夠比較一下它和其它語言的區別。ui
整型就是用來表示變量是整數的類型。和C
相似,Go
整型分爲兩個大類,無符號和有符號的,有符號簡單來講就是能表示負數的類型,無符號就是這個類型沒有正負號,統一表示整數。除了符號還有一點就是長度,由於符號和長度就決定了整型的範圍。下面是Go
整型的分類:code
類型 | 說明 | 範圍 |
---|---|---|
int | 整型,長度和平臺機器字節大小相關通常32或者64位 | 和字節碼相關 |
uint | 無符號整型,長度和平臺機器字節大小相關通常32或者64位 | 和字節碼相關 |
int8 | 有符號8位整型 | -128 ~ 127 |
uint8 | 無符號8位整型 | 0 ~ 255 |
int16 | 有符號16位整型 | -32768 ~ 32767 |
uint16 | 無符號16位整型 | 0 ~ 65535 |
int32 | 有符號32位整型 | -2147483648 ~ 2147483647 |
uint32 | 無符號32位整型 | 0 ~ 4294967295 |
int64 | 有符號64位整型 | -9223372036854775808 ~ 9223372036854775807 |
uint64 | 無符號64位整型 | 0 ~ 18446744073709551615 |
Go
有兩種浮點類型,float32
和float64
,它們都符合IEEE754
規範的定義。講到浮點類型不得不提到的就是精度,float32
大概提供6位的精度偏差,而float64
提供約15位的精度偏差。
例以下面的代碼:數學
package main import "fmt" func main() { var i float32 = 10 var j float32 = 10.0000000001 var m float64 = 10 var n float64 = 10.0000000001 fmt.Println(i == j) fmt.Println(m == n) }
打印的是:table
true false
所以在平時的使用中須要注意精度的問題。除了直接用小數的形式,還能夠用科學計數法,例如class
var i float32 = 10e-2 // 0.01
布爾類型一共有2種:true
和false
,一般用進行邏輯判斷的import
複數在一般用的不是不少,在數學上的定義,複數有實部和虛部。Go
提供了兩種精度的複數類型,complex64
和complex128
分別對應了float32
和float64
的精度。變量
var x complex128 = complex(1, 2) // 1+2i var y complex128 = complex(3, 4) // 3+4i i := 1 + 2i j := 3 + 4i
上面是複數的寫法,分別指定它們的實部和虛部就好了。複數也能夠比較是否相等數據類型
i := 1 + 2i j := 1 + 3i fmt.Println(i == j)
可是必須實部和虛部都相同才爲true
float