go 面相對象編程(一)

go面相對象的特性


僅支持封裝,不支持繼承和多態(tài)

沒有class,只有struct




go語言沒有構(gòu)造函數(shù)這一說法,也不需要構(gòu)造函數(shù),如果某些時候的確需要控制他的構(gòu)造,我們可以使用自定義工廠函數(shù)。


package tree

import "fmt"

type Nodestruct {

Value? ? ? int

Left, Right *Node

}

func (node Node) Print() {

fmt.Print(node.Value," ")

}

func (node *Node) SetValue(value int) {

if node == nil {

fmt.Println("Setting Value to nil " +

"node. Ignored.")

return

? }

node.Value = value

}

func CreateNode(value int) *Node {

return &Node{Value: value}

}


為結(jié)構(gòu)定義方法


顯示定義和命名方法接收者


只有使用指針作為方法的接收者,才可以改變結(jié)構(gòu)內(nèi)容。


nil指針也可以調(diào)用方法。(一般會在為結(jié)構(gòu)定義的方法里面做判斷)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容