兄弟連go教程(19)資料 - 匿名欄位
匿名欄位不過是⼀一種語法糖,從根本上說,就是⼀一個與成員型別同名 (不含包名) 的欄位。
被匿名嵌⼊入的可以是任何型別,當然也包括指標。
type User struct {
name string
}
type Manager struct {
User
title string
}
m := Manager{
User: User{"Tom"}, // 匿名欄位的顯式欄位名,和型別名相同。
title: "Administrator",
}
可以像普通欄位那樣訪問匿名欄位成員,編譯器從外向內逐級查詢所有層次的匿名欄位,
直到發現⺫⽬目標或出錯。
type Resource struct {
id int
}
type User struct {
Resource
name string
}
type Manager struct {
User
title string
}
var m Manager
m.id = 1
m.name = "Jack"
m.title = "Administrator"
外層同名欄位會遮蔽嵌⼊入欄位成員,相同層次的同名欄位也會讓編譯器⽆無所適從。解決⽅方
法是使⽤用顯式欄位名。
type Resource struct {
id int
name string
}
type Classify struct {
id int
}
type User struct {
Resource // Resource.id 與 Classify.id 處於同⼀一層次。
Classify
name string // 遮蔽 Resource.name。
}
u := User{
Resource{1, "people"},
Classify{100},
"Jack",
}
println(u.name) // User.name: Jack
println(u.Resource.name) // people
// println(u.id) // Error: ambiguous selector u.id
println(u.Classify.id) // 100
不能同時嵌⼊入某⼀一型別和其指標型別,因為它們名字相同。
type Resource struct {
id int
}
type User struct {
*Resource
// Resource // Error: duplicate field Resource
name string
}
u := User{
&Resource{1},
"Administrator",
}
println(u.id)
println(u.Resource.id)
尹成老師
QQ77025077
微信18510341407
所有視訊在尹成學院
www.yinchengxueyuan.com
尹成百度雲請聯絡QQ475318423
相關文章
- 兄弟連go教程(19)資料 -StructGoStruct
- 兄弟連go教程(19)資料 - ⾯物件導向Go物件
- 兄弟連go教程(14)函式 - 匿名函式Go函式
- 兄弟連go教程(16)資料 - ArrayGo
- 兄弟連go教程(17)資料 - SliceGo
- 兄弟連go教程(18)資料 - MapGo
- Go 匿名欄位介紹Go
- 兄弟連go教程(5)字串Go字串
- 兄弟連go教程(6)指標Go指標
- 兄弟連go教程(2)型別-常量Go型別
- 兄弟連go教程(3)基本型別Go型別
- 兄弟連go教程(1)型別-變數Go型別變數
- 兄弟連go教程(7)自定義型別Go型別
- 兄弟連go教程(10)表示式 - 控制流Go
- 兄弟連go教程(12)函式 - 變參Go函式
- 兄弟連go教程(9)表示式-初始化Go
- 兄弟連go教程(13)函式 返回值Go函式
- 兄弟連go教程(15)函式 - 延遲呼叫Go函式
- 兄弟連go教程(4)型別-引用及轉換Go型別
- 兄弟連go教程(8)表示式--保留字;運算子Go
- 兄弟連go教程(11)函式 - 函式定義Go函式
- 兄弟連go教程(15)函式 - 錯誤處理Go函式
- Redigo: ScanStruct()匿名指標欄位的解析GoStruct指標
- 模型資料追加欄位模型
- 欄位連線的各種資料庫的寫法 (轉)資料庫
- 資料庫int欄位超限資料庫
- 資料欄位型別匹配型別
- 資料庫欄位問題資料庫
- 年輕人的第一個go程式:監控資料庫欄位 報警Go資料庫
- Oracle資料庫連結(DBLink)中如何訪問包含BLOB欄位的資料Oracle資料庫
- 自定義元件-純資料欄位元件
- go語言將表資料動態轉成切片(欄位任意擴充)Go
- Go 匿名函式Go函式
- 資料處理之欄位合併
- 資料庫設計——冗餘欄位資料庫
- 資料庫表欄位命名規範資料庫
- 資料庫欄位簡寫說明資料庫
- 修改欄位資料型別的方法資料型別