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

前端之家收集整理的这篇文章主要介绍了为什么Ruby会为私有属性发出警告前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以示例类为例:
# 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手动定义这些方法.

原文链接:https://www.f2er.com/ruby/267874.html

猜你在找的Ruby相关文章