型別

1.型別定義在變數名稱後

var appleNum int // 一般變數
const appleNum int // 常數

2.一次定義多個同型別的變數

var AppleNum1, AppleNum2, AppleNum3 int

或是

var (
    isIt   bool      = false
    initInt uint64   = 1000
    z      complex128 = -5 + 12i
)

3.直接定義並賦值

var AppleNum int = 5

4.同時定義多個變數並賦值

var AppleNum1, AppleNum2, AppleNum3 int = 1, 2, 3

上面幾點如果直接賦值但沒有加型別,go語言會自動判斷

5.使用:= 宣告 可省略var和type

:= 只可用在函式內,放在top level會出現錯誤; 如果用 := 又加了var 和型別也會錯誤

所以用var 或const 通常用來定義全域變數才使用

6.有關 _

_(下劃線)是個特殊的變量名,任何賦予它的值都會被丟棄

可用於部分回傳值參數不想處理的時候

7.型別轉換

使用 type(要轉換的變數),例如int(..), float64(..) 等等

int8 與int32也不可直接運算,需要轉換

有一些例外情況必須用 Type_assertions

不能用 int(a) 要用 a.(int)

https://stackoverflow.com/a/18041561/4622645

https://golang.org/ref/spec#Type_assertions

8.型別別名(Type alias)

https://play.golang.org/p/HHs6xDipuZ

Golang所有可用型別

Rune

範例:

golang中string底層實作為byte。中文字符在unicode下占2個byte,在utf-8編碼為3個byte,而golang默認編碼為utf8。

所以用rune才能正確算出中文字長度。

byte array to string

如果有轉為 hex string

查看型別

Last updated

Was this helpful?