加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么Ruby会为私有属性发出警告

发布时间:2020-12-16 21:10:12 所属栏目:百科 来源:网络整理
导读:以示例类为例: # in ./example.rbclass Example private attr_accessor :nameend 当我以详细模式运行它时,Ruby会向我发出警告: $ruby -W2 ./example.rbexample.rb:3: warning: private attribute? 为什么不推荐这个? 解决方法 因为在大多数情况下定义从外
以示例类为例:
# in ./example.rb
class Example
  private
    attr_accessor :name
end

当我以详细模式运行它时,Ruby会向我发出警告:

$ruby -W2 ./example.rb
example.rb:3: warning: private attribute?

为什么不推荐这个?

解决方法

因为在大多数情况下定义从外部看不到的getter / setter没有多大意义.我们通常只使用attr_accessor来暴露类外的实例变量.但是,private关键字通过使生成的getter / setter方法对外部世界不可见而破坏了此目的.

您想要使用私有setter / getter的唯一原因是当涉及一些额外的逻辑时.但是,在这种情况下,您无论如何都必须使用def手动定义这些方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读