加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读