這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
目錄
-
- 類型與變數
- 資料類型
- 類型零值
- 類型別名
- 變數
- 類型轉換
- 字元與數位轉換
摘要
數實值型別,布爾類型,參考型別,類型零值,類型別名,定義變數,類型推斷,短聲明,類型轉換,多個變數的聲明,字元與數位轉換
類型與變數
資料類型
分類
- 布爾:bool
- 整型:int/uint - 根據平台可能為32位或64位
- 8位整型:int8/uint8
- 位元組:byte(uint8別名)
- 16位整型:int16/uint16
- 32位整型:int32/uint32
- rune(int32別名)
- 64位整型:int64/uint64
- 浮點:float32/float64
- 複數:complex64/complex128
- 足夠儲存指標的32和64位整型:uintptr - 根據平台可能為32位或64位
- 其它類型:
- 參考型別:
- slice, map, channel, interface
- 介面:interface
- 函數:func
類型零值
零值其實就是變數被聲明為某一類型後的預設值,實值型別為0
,bool 為false
,string 為""
類型別名
type ( type1 float32 type2 string)
變數
變數的定義與賦值
變數使用 var
關鍵字進行定義
//聲明var a int//賦值a = 123//聲明的同時賦值var b int = 321
由系統推斷類型
var c = 321
短聲明變數
d:=321
多個變數的聲明
變數列表
//var 語句定義了一個變數的列表;跟函數的參數列表一樣,類型在後面。var c, java, is bool
變數組
var( sss,bbb = 1,2)
並行聲明
m,n:=13,14
_表示忽略
a,_,c,d:=1,2,3,4
規則
- 所有變數都可以使用類型推斷
- 全域變數可以使用變數組
- 全域變數不能省略 var,即不能使用短聲明變數
- 局部變數不能使用變數組
類型轉換
var i int = 42var f float64 = float64(i)var u uint = uint(f)
更簡單的方式
i := 42f := float64(i)u := uint(f)
字元與數位轉換
使用 string()
無法將數字 65 轉換成 “65”,而是變成了字元 “A”。如果需要轉為 “65”,需要使用strconv
包的Itoa()
和Atoi()
方法
import "strconv"//字元與數位轉換var a int = 65fmt.Println(string(a)) //Avar result = strconv.Itoa(a)fmt.Println(result) //65fmt.Println(strconv.Atoi(result)) //65<nil>