兄弟連go教程(19)資料 - ⾯物件導向
⾯物件導向三⼤大特徵⾥裡,Go 僅⽀支援封裝,儘管匿名欄位的記憶體佈局和⾏行為類似繼承。沒有
class 關鍵字,沒有繼承、多型等等。
type User struct {
id int
name string
}
type Manager struct {
User
title string
}
m := Manager{User{1, "Tom"}, "Administrator"}
// var u User = m // Error: cannot use m (type Manager) as type User in assignment
// 沒有繼承,⾃自然也不會有多型。
var u User = m.User // 同型別拷⻉貝。
記憶體佈局和 C struct 相同,沒有任何附加的 object 資訊。
|<-------- User:24 ------->|<-- title:16 -->|
+--------+-----------+------------+ +---------------+
m | 1 | string | string | | Administrator | [n]byte
+--------+-----------+------------+ +---------------+
| | |
| +--->>>------------------->>>--------+
|
+--->>>----------------------------------->>>-----+
|
+--->>>----------------------------------->>>-+ |
| | |
+--------+-----------+ +---------+
u | 1 | string | | Tom | [n]byte
+--------+-----------+ +---------+
|<- id:8 -->|<- name:16 -->|
可⽤用 unsafe 包相關函式輸出記憶體地址資訊。
m : 0x2102271b0, size: 40, align: 8
m.id : 0x2102271b0, offset: 0
m.name : 0x2102271b8, offset: 8
m.title: 0x2102271c8, offset: 24
尹成老師
QQ77025077
微信18510341407
所有視訊在尹成學院
www.yinchengxueyuan.com
尹成百度雲請聯絡QQ475318423
相關文章
- 兄弟連go教程(19)資料 -StructGoStruct
- 兄弟連go教程(19)資料 - 匿名欄位Go
- 兄弟連go教程(16)資料 - ArrayGo
- 兄弟連go教程(17)資料 - SliceGo
- 兄弟連go教程(18)資料 - MapGo
- 兄弟連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 語言中的物件導向Go物件
- Go 筆記之物件導向Go筆記物件
- go物件導向方法的呼叫Go物件
- 兄弟連go教程(9)表示式-初始化Go
- 兄弟連go教程(13)函式 返回值Go函式
- 兄弟連go教程(14)函式 - 匿名函式Go函式
- 兄弟連go教程(15)函式 - 延遲呼叫Go函式
- 物件導向-物件導向思想物件
- 兄弟連go教程(4)型別-引用及轉換Go型別
- 兄弟連go教程(8)表示式--保留字;運算子Go
- 兄弟連go教程(11)函式 - 函式定義Go函式
- 兄弟連go教程(15)函式 - 錯誤處理Go函式
- Go 是物件導向的語言嗎?Go物件
- day08 Go中的物件導向Go物件
- Java入門教程八(物件導向)Java物件
- JavaScript物件導向15分鐘教程JavaScript物件
- 跟著老貓來搞GO,"物件導向"Go物件
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- Python進階教程5——物件導向Python物件
- SOLID Go Design - Go語言物件導向設計SolidGo物件
- SOLID Go Design - Go 語言物件導向設計SolidGo物件
- 程式導向與物件導向物件
- 物件導向與程式導向物件