Go語言從入門到實(shí)戰(zhàn)-數(shù)據(jù)類型

數(shù)據(jù)類型

基本數(shù)據(jù)類型

// 整型
int int8 int16 int32 int64

// 無符號(hào)整型
uint uint8 uint16 uint32 uint64 uintptr

// 浮點(diǎn)類型
float32 float64 

// 復(fù)數(shù)
complex64 complex128 

// 布爾類型
bool 

// 字符
string 

// 字節(jié),uint8的別名
byte 

// int32 
//表示一個(gè)Unicode 碼點(diǎn)

rune 

零值

當(dāng)一個(gè)變量或者新值被創(chuàng)建時(shí), 如果沒有為其明確指定初始值,go語言會(huì)自動(dòng)初始化其值為此類型對(duì)應(yīng)的零值, 各類型零值如下:

bool    :false

integer :0

float   :0.0

string:""

pointer, function, interface, slice, channel, map:nil

 

對(duì)于復(fù)合類型, go語言會(huì)自動(dòng)遞歸地將每一個(gè)元素初始化為其類型對(duì)應(yīng)的零值。比如:數(shù)組, 結(jié)構(gòu)體 。

整型占用字節(jié)問題

int,uint整型:和機(jī)器平臺(tái)有關(guān),最小32位,占用4字節(jié),64位,占用8字節(jié)。

類型轉(zhuǎn)換

不支持不同類型之間隱式轉(zhuǎn)換,即便是類型別名和同類型之間也不行。

數(shù)值范圍

類型 長(zhǎng)度(字節(jié)) 數(shù)值范圍
int8 1 -128~127 (-2^(8-1) ~ 2^7-1)
uint8 1 0~255 (0 ~ 2^8-1)
int16 2 -32768~32767
uint16 2 0~65535
int32 4 -2^31 ~ 2^31-1 (-2147483648~2147483647)
uint32 4 0~2^32-1 (0~4294967295)
int64 8 -2^63 ~2^63-1
uint64 8 0~2^63
int
uint
uintptr

int占用字節(jié)數(shù)測(cè)試

//
//機(jī)器位數(shù)
cpu := runtime.GOARCH
//int占用位數(shù)
int_size := strconv.IntSize

string類型

string 是值類型。默認(rèn)初始化值是空字符串,不是nil(string類型零值為空字符串)

func TestString(t *testing.T) {

    var s string
    t.Logf("%T %q", s, s) //string ""
}

本人Go語言接觸時(shí)間不長(zhǎng),文章內(nèi)容難免有紕漏,如有錯(cuò)誤還請(qǐng)指正,歡迎交流學(xué)習(xí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容