1. 程式人生 > >Go 資料的型別及預設值

Go 資料的型別及預設值

Go語言將資料型別分為四類:基礎型別、複合型別、引用型別和介面型別

  • 基礎型別
    • 整形
      • 有符號整形 int8 int16 int32 int64 預設值 0
      • 無符號整形 uint8 uint16 uint32 uint64 預設值 0
      • 特殊整形 int uint byte rune uintptr 預設值 0
    • 浮點型
      • 浮點型數 float32 float64 預設值 0.0
      • 複數型別 complex64 complex128 預設值 0+0i
    • 布林型別 true false 預設值 false
    • 字串型別 string 預設值 ""

  • 複合型別
    • 陣列型別 [SIZE]TYPE 預設值根據陣列型別變化而變化 如 [3]int[0,0,0]
    • 結構體型別 struct 預設值根據隨結構體內部型別變化而變化,如下預設值為{ 0}Name"" Age0
    type Person struct {
     	Name string
     	Age  int
     }
    

  • 引用型別
    • 指標 *TYPE 預設值 nil
    • 切片 []TYPE
      預設值 nil
    • 字典 map[TYPE][TYPE] 預設值 nil
    • 通道 chan 預設值 nil
    • 函式 func 預設值 nil

  • 介面型別
    • 介面 interface 預設值 nil

這裡要特別注意 nil
  • Go 中不同型別的 nil 是無法比較的,他們的大小也不一樣
  • 引用型別中的 slice map chan 要使用 make 函式初始化,如果常規 var NAME TYPE 的方式宣告,將不能通過正常的賦值方法來修改預設值