資料型別
型別 | 表示 | 備註 |
---|---|---|
布林型 | 布林型的值只可以是常量 true 或者 false | var b bool = true |
數字型別 | 整型int8, int16, int32, int64 和浮點型 float32、float64 | byte就是int8, int就是int32 |
字串型別 | string一串固定長度的字元連線起來的字元序列。Go 的字串是由單個位元組連線起來的。Go 語言的字串的位元組使用 UTF-8 編碼標識 Unicode 文字。 | 單個字元可以使用byte,var c byte = 'c' |
派生型別 | 包括:(a) 指標型別(Pointer)(b) 陣列型別(c) 結構化型別(struct)(d) Channel 型別(e) 函式型別(f) 切片型別(g) 介面型別(interface)(h) Map 型別 |
Go語言省去了short,long,double等型別,直接用類似int16,int64這樣的方式來表示。
bool型別。
要麼為true,要麼為false。預設值為 false。golang 中不允許將整型強制轉換為布林型。布林型無法參與數值運算,也無法與其他型別進行轉換。
數字型別
(1)整型
整型主要有 int 、int16、int32、int64、uint、uint8、uint16、uint32、uint64。如下表格
- uint8: 無符號 8 位整型 (0 到 255)
- uint16: 無符號 16 位整型 (0 到 65535)
- uint32: 無符號 32 位整型 (0 到 4294967295)
- uint64: 無符號 64 位整型 (0 到 18446744073709551615)
- int8: 有符號 8 位整型 (-128 到 127)
- int16: 有符號 16 位整型 (-32768 到 32767)
- int32: 有符號 32 位整型 (-2147483648 到 2147483647)
- int64: 有符號 64 位整型 (-9223372036854775808 到 9223372036854775807)
Go 語言的 int/uint 型別,是不可移植的型別,其長度根據宿主機的機器字長決定。int, uint 和 uintptr 在 32 位系統上通常為 32 位寬,在 64 位系統上則為 64 位寬。
(2)浮點型
浮點數型別主要有 float32、float64、complex64、complex128
- float32: IEEE-754 32 位浮點型數
- float64: IEEE-754 64 位浮點型數
- complex64: 32 位實數和虛數
- complex128: 64 位實數和虛數
3)其他數字型別
以下列出了其他更多的數字型別:
- byte :類似 uint8,代表了 ASCII 碼的一個字元,也可以說是 ASCII 字元型別
- rune : 類似 int32,表示一個 Unicode 碼點
- uintptr: 無符號整型,用於存放一個指標
UTF-8 是 Unicode 的實現方式之一。UTF-8 最大的一個特點,就是它是一種變長的編碼方式。它可以使用 1~4 個位元組表示一個符號,根據不同的符號而變化位元組長度。
字串型別
字串定義:var str string
字串有兩種表示方式:雙引號(“”);反引號,也叫原意符號(``)。
型別強轉
golang 中只有強制型別轉換,沒有隱式型別轉換。該語法只能在兩個型別之間支援相互轉換的時候使用。
強制型別轉換的基本語法為:type(variable),可轉換的資料包括變數、表示式、函式返回值等。如下程式碼
var a int = 8
// 將int型別改為int64型別
var b int64 = int64(a)
fmt輸出
呼叫包fmt的函式fmt.Printf()
通用一些表示:
%v 值的預設格式表示
%+v 類似%v,但輸出結構體時會新增欄位名
%#v 值的Go語法表示
%T 值的型別的Go語法表示
%% 百分號
布林值
%t 單詞true或false
整數
%b 表示為二進位制
%c 該值對應的unicode碼值
%d 表示為十進位制
%o 表示為八進位制
%q 該值對應的單引號括起來的go語法字元字面值,必要時會採用安全的轉義表示
%x 表示為十六進位制,使用a-f
%X 表示為十六進位制,使用A-F
%U 表示為Unicode格式:U+1234,等價於"U+%04X"
浮點數與複數的兩個部分
%b 無小數部分、二進位制指數的科學計數法,如-123456p-78;參見strconv.FormatFloat
%e 科學計數法,如-1234.456e+78
%E 科學計數法,如-1234.456E+78
%f 有小數部分但無指數部分,如123.456
%F 等價於%f
%g 根據實際情況採用%e或%f格式(以獲得更簡潔、準確的輸出)
%G 根據實際情況採用%E或%F格式(以獲得更簡潔、準確的輸出)
字串
%s 直接輸出字串或者[]byte
%q 該值對應的雙引號括起來的go語法字串字面值,必要時會採用安全的轉義表示
%x 每個位元組用兩字元十六進位制數表示(使用a-f)
%X 每個位元組用兩字元十六進位制數表示(使用A-F)
指標
%p 表示為十六進位制,並加上前導的0x