基礎數據類型 在變數的定義中,我們講了每個變數是有類型的,類型在電腦中是用來約束數據的解釋。Go語言和其它電腦語言一樣,提供豐富了豐富的數據類型,我們就來看看到底有哪些類型,同時也可以比較一下它和其它語言的區別。 整型 整型就是用來表示變數是整數的類型。和C類似,Go整型分為兩個大類,無符號和有 ...
目錄
簡介
在變數的定義中,我們講了每個變數是有類型的,類型在電腦中是用來約束數據的解釋。Go語言和其它電腦語言一樣,提供豐富了豐富的數據類型,我們就來看看到底有哪些類型,同時也可以比較一下它和其它語言的區別。
整型
整型就是用來表示變數是整數的類型。和C
類似,Go
整型分為兩個大類,無符號和有符號的,有符號簡單來說就是能表示負數的類型,無符號就是這個類型沒有正負號,統一表示整數。除了符號還有一點就是長度,因為符號和長度就決定了整型的範圍。下麵是Go
整型的分類:
類型 | 說明 | 範圍 |
---|---|---|
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)
}
列印的是:
true
false
因此在平時的使用中需要註意精度的問題。除了直接用小數的形式,還可以用科學計數法,例如
var i float32 = 10e-2 // 0.01
布爾型
布爾類型一共有2種:true
和false
,通常用進行邏輯判斷的
複數
複數在通常用的不是很多,在數學上的定義,複數有實部和虛部。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