您好,登錄后才能下訂單哦!
這篇文章主要介紹Go語言中類型別名和自定義類型的示例分析,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
Go語言中沒有類的概念,也不支持“類”的繼承等面向?qū)ο蟮母拍睢?br/>Go語言中通過結(jié)構(gòu)體的內(nèi)嵌再配合接口,比面向?qū)ο缶哂懈叩臄U展性和靈活性。
1.類型別名和自定義類型
1.1自定義類型
在Go語言中有一些基本的數(shù)據(jù)類型,如string,整型,浮點型,布爾等數(shù)據(jù)類型,Go語言中可以使用type關(guān)鍵字來定義自定義類型。
自定義類型是定義了一個全新的類型。我們可以基于內(nèi)置的基本類型定義,也可以通過struct定義。
//將MyInt定義為int類型
type MyInt int
通過Type關(guān)鍵字的定義,MyInt就是一種新的類型,它具有int的特性。
1.2類型別名
類型別名是Go1.9版本添加的新功能。
類型別名規(guī)定:TypeAlias只是Type的別名,本質(zhì)上TypeAlias與Type是同一個類型。就像我們的英文名,乳名,但這些名字都指的是一個人。
type TypeAlias = type
我們之前見過的rune和byte都是類型別名,他們的定義如下:
type byte = uint8
type rune = int32
1.3類型定義和類型別名的區(qū)別
類型別名與類型定義,表面上看只有一個等號的差異,我們可以通過下面的代碼來查看他們的區(qū)別。
package main
import "fmt"
type NewInt int
type MyInt = int
func main() {
var a NewInt
var b MyInt
fmt.Printf("type of a:%T\n",a)
fmt.Printf("type of b:%T\n",b)
}
結(jié)果:
type of a:main.NewInt
type of b:int
Process finished with exit code 0
結(jié)果顯示a的類型是main.NewInt,表示main包下定義的NewInt類型。
b類型是int。MyInt類型只會在代碼中存在,編譯完成時并不會有MyInt類型。
以上是“Go語言中類型別名和自定義類型的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。