在ruby中,self.method和类<< self之间的方法有什么区别?
发布时间:2020-12-16 20:10:51 所属栏目:百科 来源:网络整理
导读:class Foo def self.one; 1 end class self def two; 2 end endendputs Foo.singleton_methods.inspect # = ["two","one"] 我被告知上述方法“一”和“二”在概念上是不同的,但我看不到如何. 它们都是单一的方法 – 概念和应用有什么区别? 解决方法 在申请
class Foo def self.one; 1 end class << self def two; 2 end end end puts Foo.singleton_methods.inspect # => ["two","one"] 我被告知上述方法“一”和“二”在概念上是不同的,但我看不到如何. 解决方法
在申请中,没有区别.在概念上,差异是微妙的,但在第一种情况下,您正在当前上下文中运行,并在另一个类实例(实际上是其本体类中的实例方法)中定义方法,而在第二种情况下,您正在输入其他类实例的元类(“Eigenclass”)的上下文,然后定义一个实例方法.
编辑: 我应该补充说,选择课程的原因<<自己在某些情况下是... >定义多个类方法时的清除语法.>除了def my_method之外,您可以在特征类上下文中执行其他类型的代码.例如,您可以在该代码块中说attr_accessor:some_attribute. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |