【问题标题】:Why can I call the .between? method on a Fixnum?为什么我可以调用.between? Fixnum 上的方法?
【发布时间】:2023-03-27 10:54:01
【问题描述】:

例如,如果我在 irb 中键入以下内容,它会返回 Fixnum。

20.class
=> Fixnum

还有,

20.between?(10, 30)
=> true

但是,当我查看 Ruby 文档时,它说 .between?是 Comparable Module 的一部分,我还没有调用它。

【问题讨论】:

    标签: ruby comparable fixnum


    【解决方案1】:

    这是因为Fixnum 包含Comparable

    Fixnum.ancestors
    # => [Fixnum, Integer, Numeric, Comparable, Object, Kernel, BasicObject]
    

    在祖先上定义的任何内容都是可用的,除非它被更接近的祖先(或自身)覆盖。

    【讨论】:

      【解决方案2】:

      Fixnum 包含(混合)Comparable 模块:

      p Fixnum.included_modules
      
      # [Comparable, Kernel]
      

      【讨论】:

        猜你喜欢
        • 2018-06-05
        • 2012-02-28
        • 1970-01-01
        • 1970-01-01
        • 2020-03-12
        • 2012-06-29
        • 1970-01-01
        • 2010-11-07
        • 2015-10-08
        相关资源
        最近更新 更多