golang資料型別基本介紹與使用

机械心發表於2024-05-29

資料型別

型別 表示 備註
布林型 布林型的值只可以是常量 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    

相關文章