在變數的定義中,我們講了每個變數是有型別的,型別在計算機中是用來約束資料的解釋。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()
列印的是:
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
Go的100天之旅 01初識Go
上個世紀70年代ken thompson和dennis m.ritchie合作發明了unix作業系統同時dennis m.ritchie發明了c語言。2007年的robert griesemer,rob pike和ken。thompson三位大牛在google公司開始編寫和設計go語言。2009年g...
Go的100天之旅 03變數
變數這個詞 於數學,類似方程中的x y,代表的是儲存在計算機中的值。這裡主要介紹go和其它程式語言不一樣的地方,在前面我們提到過,go是一門靜態語言。靜態語言區別動態語言乙個重要的特性就是變數的型別不可變,一般是在宣告的時候就指定型別,之後就不可修改它的型別,而動態語言可以隨時修改變數的型別。go的...
Go的100天之旅 02基本語法
下面是go的25個關鍵字 break default func inte ce select case defer gomap struct chan else goto package switch const fallthrough ifrange type continue forimport...