日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go学习笔记07-结构体与方法

發布時間:2025/7/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go学习笔记07-结构体与方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Go學習筆記07-結構體與方法

Go語言

    • 面向對象
    • 結構的定義與創建


面向對象

Go語言只支持封裝,不支持繼承和多態

Go語言中只有struct,即結構體;沒有class

結構的定義與創建

  • package main?
  • ?
  • import "fmt"?
  • ?
  • //定義結構?
  • type treeNode struct {?
  • value int?
  • left, right *treeNode?
  • }?
  • ?
  • //自定義的工廠函數?
  • func createNode(value int) *treeNode{?
  • //返回的是局部變量的地址?
  • return &treeNode{value: value}?
  • }?
  • ?
  • //?
  • func (node treeNode) print(){?
  • fmt.Print(node.value)?
  • }?
  • ?
  • func main() {?
  • //創建結構?
  • root := treeNode{value: 3}?
  • root.left = &treeNode{}?
  • root.right = &treeNode{5, nil, nil}?
  • root.right.left = new(treeNode)?
  • root.left.right = createNode(2)?
  • ?
  • root.print()?
  • fmt.Println()?
  • }?
  • 上面的代碼創建的樹如下圖:

    <mxfile userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36" version="8.5.3" editor="www.draw.io"><diagram>5ZhPk9ogGMY/TY7tJECiHnetbQ/tTGc8tHtkE0xoMaRI1thPXyLkDyR2HLtqOt2DG54XXuD3vBFGDy631QeBi+wzTwjzgJ9UHnznAQBhqD5r4aCFCM61kAqaaCnohDX9RYzoG7WkCdlZHSXnTNLCFmOe5ySWloaF4Hu724Yze9YCp2QgrGPMhupXmshMq3Mw6/SPhKZZM3MQLXTkGcc/UsHL3MznAbg5/unwFje5zEZ3GU74vifBlQeXgnOpn7bVkrAabYNNj3t/ItquW5BcnjMA6AEvmJWkWXHE1NDHDVcZ1ALlwUCJfpa8CbzZHS17UB2CeVF1QfWU1v9hk0ZNrTNp3ey6TQqOrEi9mkCF9xmVZF3guI7uVWkpLZNbZsJmsURIUp3ccNBiVNVJ+JZIcVBdmtIMkR5iKhMZI/Y9myMtZT2Hm27YFFbaJu7gqgfDd5w1vBLrcKqs0QxarAN4O9joSrD9qcIGvn832OH/BhtBG3b7fX4D2NGVYLdpnkXHeZr4W7Z3wD8b7J4k6u5gmlzIjKc8x2zVqY8dH99mQSoqv9Xy29C0nkzkO5HyYC5GuJRcSV3uT5wXFs16CX9mqVbMSxET6yiSWKRE9qQhcUEYlvTFzv43/IKxY9AlmicP9S1OtWKGdzsan4tNbVoceqG6+WS4X4YKDFGhcVS94gv9YfE12tlEzQxfOD2+1k3tR/ZXDwydotaLN6P6Vz8nEQycRL6TSG95kOhocLvt8zwfO43/Lc9PvB638RwC2yoUXOr5zPE8up7nY5eCCXuOhp5Hd33PkWPV4kLPwcJJ5J6Cr+j52N1kwp6PHIPhXd9zxyoELvQcucUzey3PVbP7dUJ3734Bgqvf</diagram></mxfile> 1553080430301.drawio.html 6.62KB

    • 不管是地址還是結構體本身,都用 . 來訪問成員。
    • nil指針也可以調用方法

    值接收者與指針接收者

    • 改變內容必須使用指針接收者
    • 結構過大應優先考慮使用指針接收者
    • 一致性
    • 值接收者是Go語言特有的

    轉載于:https://www.cnblogs.com/vocaloid-fan1995/p/10567144.html

    總結

    以上是生活随笔為你收集整理的Go学习笔记07-结构体与方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。