go語言僅支援封裝,不支援繼承和多态。
go語言沒有class,隻有struct。
結構的定義

- go 語言即使是指針,不像 C語言使用
也可一直使用->
引用下去.
- go 沒有構造器,但可使用工廠函數
那麼這到底建立在了堆還是棧呢?
不需要知道。如果傳回了沒人用就在棧上
如果傳回了有人用,就在堆,并參與到 GC。
是以沒必要知道,編譯器自己都知道。
參數前後差別
- 參數定義在函數名前後有啥差別呢?
- 使用差別
Go都是值傳遞,記住了,和 Java 一樣。
使用指針作為方法接收者
- 隻有使用指針才可以改變結構内容
- nil 指針也可調用方法(Go 很特殊)
值接收者 V.S 指針接收者
- 要改變内容必須使用指針接收者
- 結構過大也考慮使用指針接收者
- 一緻性:如有指針接收者,最好都是指針接收者
值接收者才是go語言特有的!
值/指針接收者均可接收值/指針