數據類型 類型 表示 備註 布爾型 布爾型的值只可以是常量 true 或者 false var b bool = true 數字類型 整型int8, int16, int32, int64 和浮點型 float32、float64 byte就是int8, int就是int32 字元串類型 strin ...
數據類型
類型 | 表示 | 備註 |
---|---|---|
布爾型 | 布爾型的值只可以是常量 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