【go語言學習】type關鍵字
阿新 • • 發佈:2020-11-03
type是go語法裡的重要而且常用的關鍵字,type絕不只是對應於C/C++中的typedef。搞清楚type的使用,就容易理解go語言中的核心概念struct、interface、函式等的使用。
一、型別定義
1、定義結構體
使用type可以定義結構體
type Preson struct {
name string
age int
}
2、定義結構
使用type可以定義介面
type USB interface {
start()
end()
}
3、定義新的型別
type Type
4、函式型別
使用type定義函式型別
type fun func () int
二、類型別名
類型別名的寫法為:
type 別名 = Type
類型別名規定:TypeAlias 只是 Type 的別名,本質上 TypeAlias 與 Type 是同一個型別。就像一個孩子小時候有小名、乳名,上學後用學名,英語老師又會給他起英文名,但這些名字都指的是他本人。
三、型別定義和類型別名的區別
package main import "fmt" type newInt int type myInt = int func main() { var a newInt = 10 var b myInt = 10 // fmt.Println(a == b) //invalid operation: a == b (mismatched types newInt and int) fmt.Printf("%T, %T\n", a, b) //main.newInt, int }
a的型別是main.newInt, b的型別是int, myInt型別只在程式碼中存在,編譯完成並不會有myInt型別。