前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言的面向对象

Go语言的面向对象

作者头像
JavaEdge
发布2021-02-22 13:39:32
2690
发布2021-02-22 13:39:32
举报
文章被收录于专栏:JavaEdge

go语言仅支持封装,不支持继承和多态。 go语言没有class,只有struct。

结构的定义

  • go 语言即使是指针,不像 C语言使用->也可一直使用.引用下去
  • go 没有构造器,但可使用工厂函数

那么这到底创建在了堆还是栈呢? 不需要知道。如果返回了没人用就在栈上 如果返回了有人用,就在堆,并参与到 GC。 所以没必要知道,编译器自己都知道。

参数前后区别

  • 参数定义在函数名前后有啥区别呢?
  • 使用区别

Go都是值传递,记住了,和 Java 一样。

使用指针作为方法接收者

  • 只有使用指针才可以改变结构内容
  • nil 指针也可调用方法(Go 很特殊)

值接收者 V.S 指针接收者

  • 要改变内容必须使用指针接收者
  • 结构过大也考虑使用指针接收者
  • 一致性:如有指针接收者,最好都是指针接收者

值接收者才是go语言特有的! 值/指针接收者均可接收值/指针

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结构的定义
  • 参数前后区别
  • 使用指针作为方法接收者
  • 值接收者 V.S 指针接收者
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档