go 資料型別和型別轉換

2021-09-28 18:04:17 字數 1358 閱讀 4561

數字型別包括整型和浮點型,內建的和系統無關的數字型別包括

和系統有關的型別有:

組成每個字串的元素叫做「字元」,可以通過遍歷或者單個獲取字串元素獲得字元:

var a := '中'

var b := 'x'

go 語言的字元有以下兩種:

uint8型別,或者叫 byte 型,代表了ascii碼的乙個字元。

rune型別,代表乙個 utf-8字元。

當需要處理中文、日文或者其他復合字元時,則需要用到rune型別。rune型別實際是乙個int32。

字串底層是乙個byte陣列,所以可以和byte型別相互轉換。字串是不能修改的 字串是由byte位元組組成,所以字串的長度是byte位元組的長度。 rune型別用來表示utf8字元,乙個rune字元由乙個或多個byte組成。

修改字串:

要修改字串,需要先將其轉換成rune或byte,完成後再轉換為string。無論哪種轉換,都會重新分配記憶體,並複製位元組陣列。

func changestring()
一、顯式型別轉換

這種型別轉換主要在切換同一基礎型別不同精度範圍時使用,比如我們要將 int 型轉為 int64 型別時。

func sqrtdemo()
該型別轉換要注意的是:型別被轉換後會損失精度

二、斷言(assert)

斷言,顧名思義就是果斷的去猜測乙個未知的事物。在 go 語言中,inte***ce{} 就是這個神秘的未知型別,其斷言操作就是用來判斷 inte***ce{} 的型別

var foo inte***ce{} = 22

f, ok := foo.(int)

if !ok

fmt.printf("the type is : %t", f)

三、取指標和解指標

通過符號 & 、* 可以實現指標與其所對應值的切換

func test(t *testing.t) 

per := &p

t.logf("the type of per is : %t \n", per)

t.logf("after operation , type is : %t", *per)

}

& 可以輕鬆的將某型別 t 轉化為 t 的指標型別(*t),* 可輕鬆實現解指標,將某一型別的指標轉化為該指標指向的值的型別

go資料型別轉換

在必要以及可行的情況下,乙個型別的值可以被轉換成另一種型別的值。由於go語言不存在隱式型別轉換,因此所有的型別轉換都必須顯式的宣告 valueoftypeb typeb valueoftypea 型別轉換只能在定義正確的情況下轉換成功,例如從乙個取值範圍較小的型別轉換到乙個取值範圍較大的型別 將 i...

資料型別和型別轉換

整數型 byte,short,int,long,char 浮點型 float,double 浮點型別的資料預設是double型別。轉義字元 n換行 b退格 r回車 t製表 雙引號 單引號 char型別的資料使用 單引號 string型別的資料使用 雙引號 double 雙精度 64位 佔8位元組,f...

資料型別 型別轉換

這樣的語句將報錯,因為char型別精度低於int型別,編譯器無法將其自動轉換,只能進行強制轉換 int x 65 char ch char x 舉例1 int age 19 char 女 char result age int 不可以自動轉換成char 精度損失 舉例2 int a 10 int b...