課程要點 瞭解布爾類型 瞭解整數類型 瞭解浮點數類型 瞭解複數類型 瞭解字元串類型 瞭解字元類型 布爾類型 類型 名稱 取值範圍 說明 bool 布爾類型 true或false 預設值為false 示例 ok := true println(ok) 整數類型 類型 名稱 取值範圍 說明 uint8 ...
課程要點
- 瞭解布爾類型
- 瞭解整數類型
- 瞭解浮點數類型
- 瞭解複數類型
- 瞭解字元串類型
- 瞭解字元類型
布爾類型
類型 | 名稱 | 取值範圍 | 說明 |
---|---|---|---|
bool | 布爾類型 | true 或false |
預設值為false |
示例
ok := true
println(ok)
整數類型
類型 | 名稱 | 取值範圍 | 說明 |
---|---|---|---|
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 | 32位有符號整型 | -9223372036854775808 ~9223372036854775807 |
|
int | 有符號整型 | 32位系統同int32 ,64位系統同int64 |
類型大小隨操作系統的位數而定,是整數字面量的預設類型 |
uint | 無符號整型 | 32位系統同uint32 ,64位系統同uint64 |
類型大小隨操作系統的位數而定 |
uintptr | 指針類型 | 32位系統同uint32 ,64位系統同uint64 |
用於描述指針的地址,類型大小同uint 類似 |
byte | 位元組類型 | 同uint8 |
int8 的別名,用於描述位元組 |
rune | 字元類型 | 同int32 |
int32 的別名,用於描述單個字元 |
上述整數類型預設值都為0
,其中uintptr
、byte
、rune
是特殊用途的整數類型,
在整數類型的基礎上賦予了額外的語義,使其具有更加強大的功能,後續會進行更加深入的解析和應用。
示例
var uint8N uint8 = 255
println(uint8N)
var uint16N uint16 = 65535
println(uint16N)
var uint32N uint32 = 4294967295
println(uint32N)
var uint64N uint64 = 18446744073709551615
println(uint64N)
var int8N int8 = 127
println(int8N)
var int16N int16 = 32767
println(int16N)
var int32N int32 = 2147483647
println(int32N)
var int64N int64 = 9223372036854775807
println(int64N)
var intN int = 1
println(intN)
var uintN uint = 1
println(uintN)
var uintptrN uintptr = 1
println(uintptrN)
var byteN byte = 255
println(byteN)
var runeN rune = '中'
println(runeN)
浮點數類型
類型 | 名稱 | 取值範圍 | 說明 |
---|---|---|---|
float32 | 32位浮點數類型 | -math.MaxFloat32 ~math.MaxFloat32 |
預設值為0 |
float64 | 64位浮點數類型 | -math.MaxFloat64 ~math.MaxFloat64 |
預設值為0 ,是小數字面量的預設類型 |
浮點數類型用於描述小數,採用IEEE-754
浮點數標準
示例
var f32 float32 = 1.1
println(f32)
var f64 float64 = 1.1
println(f64)
複數類型
類型 | 名稱 | 取值範圍 | 說明 |
---|---|---|---|
complex64 | 64位複數類型 | 實部與虛部取值同float32 |
由兩個float32 類型組成的複數 |
complex128 | 128位複數類型 | 實部與虛部取值同float64 |
由兩個float64 類型組成的複數 |
複數包含實部和虛部,由兩個浮點數組成,我們可以使用內置的complex
函數來創建複數類型,
並且使用real
和imag
函數分別獲取複數的實部和虛部。
示例
// 創建complex64類型的複數
c64 := complex(float32(1.1), float32(1.2))
// 獲取實部
real64 := real(c64)
// 獲取虛部
imag64 := imag(c64)
println(c64)
println(real64)
println(imag64)
// 創建complex128類型的複數
c128 := complex(1.1, 1.2)
// 獲取實部
real128 := real(c128)
// 獲取虛部
imag128 := imag(c128)
println(c128)
println(real128)
println(imag128)
字元串類型
類型 | 名稱 | 取值範圍 | 說明 |
---|---|---|---|
string | 字元串類型 | 通常取值為UTF-8支持的Unicode字元集 | string 本質上是一個byte 集合,所以也可以表示UTF-8編碼之外的字元集 |
string
類型的預設值為空字元串,同大多數編程語言一樣,Golang中的字元串類型的值也是不可變的。
string
類型在底層實際是用byte
數組來存儲的,所以我們可以直接將其與byte
切片進行相互轉換,
後續會有單獨的章節對字元串類型進行詳細介紹,這裡只做簡單的介紹和瞭解。
在Golang中並沒有名為char
的字元類型,但是我們可以使用上文提到過的rune
類型來描述一個合法字元,
也可以直接將字元轉換為字元串,如下所示
示例
s := "hello world"
println(s)
// 將字元串轉為byte切片
bytes := []byte(s)
println(bytes)
// 將byte切片轉為字元串
s2 := string(bytes)
println(s2)
// 定義一個字元
var char rune = '文'
// 將字元轉為字元串
s = string(char)
println(s)
小結
通過上述的簡單介紹,我們對Golang的基本數據類型有了一個初步的瞭解,和其他主流的編程語言非常相似,
如果你有一定的編程基礎,相信你很快就能掌握它。
如果你沒有相關的經驗也沒有關係,後續的教程中,我們會不斷的用到這些基礎類型,
並且對一些常用的基本數據類型進行更進一步的深入探索。
當然了,這些還不是Golang數據類型中的全部,Golang中還有更加複雜的複合類型,
它們具有更加強大的功能以及更加靈活的使用方式,正是因為有了它們作為Golang的基石,
才使得Golang具有如此強大的生命力。
讓我們來繼續逐步深入學習吧!
作者: 陌上荼靡