Go學習筆記之基礎資料型別

2022-03-21 23:02:34 字數 1869 閱讀 4493

1 整數

在 go 語言中,如果不加特殊字首,都是10進製表示,例如:「100」

整數可以直接用指數形式,例如:「1e9」,意思是 1 * (10^9),1 乘以 10 的 9 次方

整數的加減法用 + 和 - 號,乘法用 * 號,除法用 / 號, 得到的商是整數,例如 5 / 2 = 2,而 % 號是求餘(取模), 例如 5 % 2 = 1

在 go語言中,整數型別分為帶符號整型和不帶符號整型,接著又分別按照長度各自劃分為4個型別。

帶符號整型 int8 int16 int32 int64

不帶符號整型  uint8 uint16 uint32 uint 64

除此之外還有預設型別 int 和 uint,目前都是32位,未來可能會變成64位

整數比較用 > / < / == / != / <= / >=,結果是布林型別, true or false

按位運算 &(且), |(或), ^(異或),&^(與非),<<(左移),>>(右移)

異或自身,相當於取反碼, 例如 ^1 = -2(ps:(^-1) + 1 = 求-1的補碼)

2 浮點數

在 go 語言中,浮點數分為 float32 和 float64 兩種型別,符合 ieee 754 的規定。

只有整數部分的浮點數,要加小數點標識,例如浮點數 1 的標識為 1.0

對於整數字面量 和浮點數字面量,go 根據使用的場合,會自動 整數->浮點數 或 浮點數-> 整數 轉換

3 複數

基本上很少用到,簡單介紹下

在 go 語言中,複數分為 complex64 和 complex128,可以用 0+1i 的格式表示  

4 布林

在 go 語言中,布林值的型別為 bool,值是 true 或 false

布林可以做3種邏輯運算,&&(邏輯且),||(邏輯或),!(邏輯非)

在邏輯表示式中,go語言也支援短路判斷

布林型別的值不支援其他型別的轉換

5 字串

在 go 語言中,組成字串的最小單位是字元,儲存的最小單位是位元組,字串本身不支援修改。

位元組是資料儲存的最小單元,每個位元組的資料都可以用整數表示,例如乙個位元組儲存的字元a,實際儲存的是97而非字元的字形,將這個實際儲存的內容用數字表示的型別,稱之為byte。

字元是 utf-8 編碼的 unicode 字元,unicode 為每乙個字元而非字形定義唯一的碼值(即乙個整數),例如 字元a 在 unicode 字元表是第 97 個字元,所以其對應的數值就是 97,也就是說對於go語言處理字元時,97 和 a 都是指的是字元a,而 go 語言將使用數值指代字元時,將這樣的數值稱呼為 rune 型別

通常unicode表示乙個字元時,通常會用"u+"然後緊接著一組十六進製制的數字來表示這個字元,例如 字元a 通常用 u+0061 來表示。

在 go 語言中,如果直接按照字元的字形的話,可以用單引號 (') 括起來表示,例如 'a' ,也可按照碼值來表示,可以用 \xnn ,\unnnn , \unnnnnnnn 的 格式,每個 n 代表一位數。例如 字元a 可以用 \x61 或 \u0061 或 \u00000061

在 go 語言中,可以用兩種方式表示字串,一種是雙引號 (") 括在一起的,可以包含轉義字元。另一種是使用反引號 (`) 括起的,可以包含換行等格式字元,感覺有點象其他語言的 heredoc 。

因為組成字串的最小單位是字元,而儲存的最小單位是位元組,對於字串遍歷,只有全是小於1個位元組字元(即碼值小於256)組成的,可以直接遍歷或者轉成byte切片遍歷,而包含大於1個位元組字元組成的,最安全的做法是轉換成rune切片。

Go 學習筆記 Go 語言資料型別

在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別描述1 布林型布林型的值只可以是常量 true 或者 false。乙個簡單的...

GO學習筆記 4 資料型別之基本資料型別

go語言的字元有以下兩種型別 byte型別 是uint8的別名,代表乙個ascii碼。rune型別 是int32的別名,代表乙個utf 8字元,由乙個或多個byte組成。例如 乙個中文字元或者日文字元。字串底層是乙個byte陣列,所以可以和byte型別相互轉換,字串的長度是byte位元組的長度。s ...

Go語言學習筆記 Go語言資料型別

布林型 布林型的值只可以是常量true或者false。乙個簡單的例子 var b bool true。數字型別 整型int和浮點型float32 float64,go 語言支援整型和浮點型數字,並且支援複數,其中位的運算採用補碼。字串型別 字串就是一串固定長度的字元連線起來的字串行。go 的字串是由...