golang基礎 - 自定義類型和類型別名(type)


自定義類型

Go語言通過type關鍵字定義自定義類型。自定義類型是全新的類型。
示例:

// 將newInt定義為int類型
type newInt int

func main() {
	var a newInt
	a = 100
	fmt.Println(a)        // 100
	fmt.Printf("%T\n", a) // main.newInt
}

上例中的newInt是具有int特性的新類型。可以看到變量a的類型是main.newInt,這表示main包下定義的newInt類型。

類型別名

語法格式:type 別名 = Type
示例:

type tempString = string

func main() {
	var s tempString
	s = "我是s"
	fmt.Println(s)        // 我是s
	fmt.Printf("%T\n", s) // string
}

例中,tempStringstring的別名,其本質上與string是同一個類型。類型別名只會在代碼中存在,編譯完成后不會有如tempString一樣的類型別名。所以變量s的類型是string
字符類型中的byterune就是類型別名:

type byte = uint8
type rune = int32

類型別名這個功能非常有用,鑒於go中有些類型寫起來非常繁瑣,比如json相關的操作中,經常用到map[string]interface {}這種類型,寫起來是不是很繁瑣,沒關系,給它起個簡單的別名!這樣用起來爽多了。

type strMap2Any = map[string]interface {}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM