Ruby on rails 类中ruby函数类型的语法
如果我有一个Ruby类:Ruby on rails 类中ruby函数类型的语法,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,如果我有一个Ruby类: class Person def get_person end protected def check_person_1 end def check_person_2 end private def auth_person_1 end def auth_person_2 end end auth\u person\u 2aprivate功能还是public或protected功能?我的意思是,我在函数名上
class Person
def get_person
end
protected
def check_person_1
end
def check_person_2
end
private
def auth_person_1
end
def auth_person_2
end
end
auth\u person\u 2
aprivate功能还是public或protected功能?我的意思是,我在函数名上方没有“private”关键字,但它位于auth\u person\u 1
函数下,而该函数直接位于“private”下,在这种情况下,什么函数类型是auth\u person\u 2
?那么函数如何呢?在这种情况下,auth\u person1/2是私有的,check\u person1/2是受保护的,get\u person是公共的
函数查找最后一个关键字,这就是它们使用的关键字
您也可以这样做:
class Person
def method1
end
def method2
end
def method3
end
def method4
end
public :method1, :method4
protected :method2
private :method3
end
这样做也会奏效:
class Person
def method
end
private
def method1
end
public
def method2
end
end
您可以按任意顺序使用它们,并多次使用相同的关键字。Ruby不像C#,您必须为每个方法定义封装
在调用其他方法(private、public或protected)之前,方法“private”下面的所有内容都是私有的。例如,可以使用“public”在私有方法块之后定义公共方法
默认情况下,您的类是公共的
class Hello
...
end
与
class Hello
public
...
end
轻微更正:函数不“查找最后一个关键字”<代码>私有,
受保护
是来自内核
模块的方法。这些方法设置了访问范围。它们不是函数,而是方法。private
不是一个关键字,它是一种方法,就像Ruby中的其他方法一样。直到某个第三方库作者想出了一个非常聪明的想法,即monkey patchingprivate
。这是一个有趣的错误追踪。。。不