5、Go 基本類型html
一、基本類型種類java
布爾值: bool 長度 1字節 取值範圍 true, false
注意事項:不可用數字表明 true 或 false編程
整型: int/uint 根據運行平臺可能爲32位或64位數組
8位整型: int8/uint8 長度: 1字節 取值範圍:-128 ~127 / 0 ~ 255函數
字節型: byte (uint8別名),byte類型通常用於強調數值是一個原始的數據而不是 一個小的整數 ui
16位整型: int16/uint16 長度:2字節 取值範圍:-32768 ~ 32767 或 0 ~ 65535spa
32位整型: int32(rune)/uint32 長度: 4字節 取值範圍: -2^32/2 ~ 2^32/2-1 或 0 ~ 2 ^ 32 - 1
說明:rune 是有符號的32位整型 uint32 的別名, 一般用於表示一個 Unicode 碼點。rune 和 int32 能夠互換使用。操作系統
64位整型: int64/uint64 長度: 8字節 取值範圍: -2^64/2 ~ 2^64/2 - 1 或 0 ~ 2 ^ 64 - 1指針
浮點型 float32 長度: 4字節 小數位: 精確到7code
浮點型 float64 長度: 8字節 小數位: 精確到15小數位
複數 complex64 長度: 8字節
複數 complex128 長度: 16字節
足夠保存指針的32位或64位的無符號整數類型: uintptr
說明:uintptr 在32平臺下爲4字節,在64位平臺下是8字節
其餘值類型:string、 array 、 struct
引用類型: slice(切片) 、 map(字典) 、 channel(管道)
接口類型: interface
函數類型: func
二、整形數據類型
go 種屬於整形的數據有不少種:
rune 類型是 Unicode 字符類型,和 int32 類型等價,一般用於表示一個 Unicode 碼點。rune 和 int32 能夠互換使用。
byte 是uint8類型的等價類型,byte類型通常用於強調數值是一個原始的數據而不是 一個小的整數。
uintptr 是一種無符號的整數類型,沒有指定具體的bit大小可是足以容納指針。 uintptr類型只有在底層編程是才須要,特別是Go語言和C語言函數庫或操做系統接口相交互的地方。
有符號整數採用 2 的補碼形式表示,也就是最高 bit 位用做表示符號位,一個 n bit 的有 符號數的值域是從 -2^{n-1} 到 2^{n-1}−1。例如,int8類型整數的值域是從-128 到 127, 而uint8類型整數的值域是從0到255。
todo:
分類 | 類型名稱 | 有無符號 | bit數 | 零值 | 示例 | 字符串格式化 | 備註 |
---|---|---|---|---|---|---|---|
布爾型 | bool | -- | 1 | false | var isPC bool = true | %t,%v(全部類型的默認格式化輸出都是%v) | 布爾型的兩個值是常量,不能使用數字0 和1替代 |
整數 | int8 | Yes | 8 | 0 | 10進制%d,8進制%o ,16進制%x或%X | ||
int16 | Yes | 16 | 0 | 同上 | |||
int32 | Yes | 32 | 0 | 同上 | |||
int64 | Yes | 64 | 0 | 同上 | |||
uint8 | No | 8 | 0 | 同上 | |||
uint16 | No | 16 | 0 | 同上 | |||
uint32 | No | 32 | 0 | 同上 | |||
uint64 | No | 64 | 0 | 同上 | |||
int | Yes | 等於cpu位數(32/64) | 0 | 同上 | |||
uint | No | 等於cpu位數 | 0 | 同上 | |||
byte | No | 與 int8 等價 | 0 | %c %U則輸出:U+hhhh | 單字節字符,與傳統 ASCII 碼對應,包含在單引號中。 | ||
rune | Yes | 與 uint32 等價 | 0 | %c %U則輸出:U+hhhh | 多字節字符,與 Unicode code points對應,包含在單引號中。 | ||
uintptr | No | 等於cpu位數 | 0 | uintptr 在32位平臺下爲4字節(4*8bit),在64位平臺下是8字節(8*8bit) | |||
浮點數 | float32 | -- | 32 | 0.0 | %g,%f則對應浮點類型的指針;%e則對應科學計數法辦輸出;%n.mg用於指定小數位輸出 | ||
float64 | -- | 64 | 0.0 | ||||
複數 | complex64 | -- | 64 | 0 | %v, 另外也可使用%f輸出實部和虛部 | 實數與虛數各佔32bit,實部由浮點數表示,虛部由浮點數以及小寫字母「i」表示 | |
complex128 | -- | 128 | 0 | %v, 另外也可使用%f輸出實部和虛部 | 實數與虛數各佔64bit,實部由浮點數表示,虛部由浮點數以及小寫字母「i」表示 | ||
字符串 |
string | 包含在雙引號中,單行,字符前面帶斜槓的表示轉義,不可變字節數組 | |||||
raw string | "" | 包含在反引號中,能夠跨越多行,沒有轉義字符功能 | |||||
三、變量數據類型的轉換:
go 中不存在隱式轉換,全部類型轉換必須顯式聲明
轉換隻能發生在兩種相互兼容的類型之間, 布爾類型不能夠和數字進行轉換
無論值的具體大小,int、uint和uintptr是不一樣類型的兄弟類型。其中int和int32也是 不一樣的類型, 即便int的大小也是32bit,在須要將int看成int32類型的地方須要一個顯式 的類型轉換操做,反之亦然。
var a float32 = 1.1 b := int(a) //浮點型能夠轉換爲 int型,這有點像 java
四、類型零值
零值並不等於空值,而是當變量被聲明爲某種類型後未賦值時的默認值,一般狀況下,值類型默認值爲0, bool爲false, string爲空字符串。
五、類型的別名
go 能夠爲基本數據類型、函數、接口等任意的類型定義類型別名,語法是
type 類型別名 = 類型
//批量聲明類型別名 type{ i = int s = string fun = func() inter = interface{} } var x i = 1 //聲明一個 int 形變量
to be continued
六、數據類型與格式化輸出
6、操做符及數據運算
一、數學運算
https://www.cnblogs.com/fengbohello/p/5854108.html
二、比較運算
三、布爾運算
四、二進制位移運算