Golang 的属性大写之后,有必要再去添加getter setter吗?

在这里插入图片描述

官方答疑:

Getters

Go doesn’t provide automatic support for getters and setters. There’s nothing wrong with providing getters and setters yourself, and it’s often appropriate to do so, but it’s neither idiomatic nor necessary to put Get into the getter’s name. If you have a field called owner (lower case, unexported), the getter method should be called Owner (upper case, exported), not GetOwner. The use of upper-case names for export provides the hook to discriminate the field from the method. A setter function, if needed, will likely be called SetOwner. Both names read well in practice:


Go 不为 getter 和 setter 提供自动支持。自己提供 getter 和 setter 并没有错,这样做通常是合适的,但将 Get 放入 getter 的名称既不是惯用语,也没有必要。如果您有一个名为 owner 的字段(小写,未导出),则 getter 方法应称为 Owner(大写,导出),而不是 GetOwner。使用大写名称进行导出提供了将字段与方法区分开来的钩子。如果需要,一个 setter 函数可能会被称为 SetOwner。这两个名字在实践中读起来都很好:


owner := obj.Owner()
if owner != user {
    obj.SetOwner(user)
}

参考连接:

Effective Go-Getters

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值