为什么Ruby不允许我将self指定为私有方法中的接收者?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Ruby不允许我将self指定为私有方法中的接收者?相关的知识,希望对你有一定的参考价值。
Ruby是一种面向对象的语言。这意味着无论我发送什么消息,我都严格按照类的某个对象/实例发送它。
示例:
class Test
def test1
puts "I am in test1. A public method"
self.test2
end
def test2
puts "I am in test2. A public Method"
end
end
我在test2
对象上调用方法self
很有道理>>
但是我不能这样做
class Test def test1 puts "I am in test1. A public method" self.test2 # Don't work test2 # works. (where is the object that I am calling this method on?) end private def test2 puts "I am in test2. A private Method" end end
[当
test2
为public method
时,我可以在self
上调用它(很公平,这是一种发送给self对象的方法)。但是当test2
为private method
时,我无法自行调用。那么我要发送方法的对象在哪里?
Ruby是一种面向对象的语言。这意味着无论我发送什么消息,我都严格按照类的某些对象/实例发送它。示例:类Test def test1将“我在test1中。A...
答案
问题
另一答案
我要在其上发送方法的对象在哪里
另一答案
[self
表示您所在的对象的当前实例。
另一答案
[在Ruby 2.7中已更改(2019年12月):self.foo()
现在对私有方法foo
也有效。
以上是关于为什么Ruby不允许我将self指定为私有方法中的接收者?的主要内容,如果未能解决你的问题,请参考以下文章
如果我们将Optional.of方法设为私有,并且只允许Java中的Optional.ofNullable,该怎么办?除了向后兼容性会有什么问题吗?