淺談go語言中別名類型的使用
什么是別名類型
我們可以用關(guān)鍵字 type 聲明自定義的各種類型,類似:
type People struct { name string age int }
當(dāng)然了,這些類型必須在 Go 語言基本類型和高級類型的范疇之內(nèi)。
在它們當(dāng)中,有一種被叫做 ”別名類型” 的類型。我們可以像下面這樣聲明它:
type stringAlias = string
這條聲明語句表示,stringAlias 是 string 類型的別名類型。顧名思義,別名類型與其源類型的區(qū)別恐怕只是在名稱上,它們是完全相同的。我們完全可以使用以下代碼測試:
func func10() { var s1 stringAlias = "2" v, ok := interface{}(s1).(string) fmt.Println(ok) fmt.Println(v) fmt.Println(reflect.TypeOf(s1)) }
output:
true
2
string
從代碼結(jié)果來看,stringAlias 以及 string 實際上就是同一種類型。
延伸
如果我們這么定義呢?
type stringAlias1 string
還是使用上面的例子進行測試:
func func11() { var s1 stringAlias1 = "2" v, ok := interface{}(s1).(string) fmt.Println(ok) fmt.Println(v) fmt.Println(reflect.TypeOf(s1)) }
output:
false
main.stringAlias1
我們可以從輸出看出來,這里的 stringAlias1 和 string 是完全兩種類型。這種我們叫類型的重定義。
到此這篇關(guān)于淺談go語言中別名類型的使用的文章就介紹到這了,更多相關(guān)go 別名類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Go和Gorm實現(xiàn)讀取SQLCipher加密數(shù)據(jù)庫
本文檔主要描述通過Go和Gorm實現(xiàn)生成和讀取SQLCipher加密數(shù)據(jù)庫以及其中踩的一些坑,文章通過代碼示例講解的非常詳細, 對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06Go語言在終端打開實現(xiàn)進度條處理數(shù)據(jù)方法實例
這篇文章主要介紹了Go語言在終端打開實現(xiàn)進度條處理數(shù)據(jù)方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12