gpt4 book ai didi

ruby - Ruby 中的私有(private)/ protected block ?

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

Ruby 似乎没有像这样定义 protected /私有(private) block 的工具:

protected do
def method
end
end

相比,这会更好
protected 

def method
end

public

您可能会忘记在 protected 方法之后“公开”的地方。

似乎可以使用元编程来实现这一点。有什么想法吗?

最佳答案

由于您想按功能分组,您可以声明所有方法,然后使用 protected 后跟要保护的方法的符号来声明哪些方法是 protected 和私有(private)的,对于私有(private)方法也是如此。

下面的类(class)说明了我的意思。在这个类中,除了最后声明为 protected 和私有(private)的 bar_protected 和 bar_private 之外,所有方法都是公共(public)的。

class Foo

def bar_public
print "This is public"
end

def bar_protected
print "This is protected"
end

def bar_private
print "This is private"
end

def call_protected
bar_protected
end

def call_private
bar_private
end

protected :bar_protected

private :bar_private

end

关于ruby - Ruby 中的私有(private)/ protected block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/994245/

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