gpt4 book ai didi

ruby - private、protected 和 public 的范围

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:19 26 4
gpt4 key购买 nike

在 Ruby 类定义中,private 关键字在以下场景中的作用域是什么:

class Foo

def bar_public
puts "public"
end

private
def bar_private
puts "private"
end

def bar_public_2
puts "another public"
end

end

private是否只作用于bar_private?还是在 bar_public_2 上?

最佳答案

在您的例子中,bar_privatebar_public_2 都是私有(private)的。

那是因为这两种方法都在 private 关键字的“范围内”。

> f = Foo.new
#<Foo:0xf1c770>
> Foo.new.bar_private
NoMethodError: private method 'bar_private' called for #<Foo:0xf1c770>
> Foo.new.bar_public_2
NoMethodError: private method 'bar_public_2' called for #<Foo:0xf1c770>

无论哪种方式,回答您问题的最佳方式是打开 IRB 并尝试一下;-)

关于ruby - private、protected 和 public 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6539081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com