【发布时间】:2023-03-27 10:54:01
【问题描述】:
例如,如果我在 irb 中键入以下内容,它会返回 Fixnum。
20.class
=> Fixnum
还有,
20.between?(10, 30)
=> true
但是,当我查看 Ruby 文档时,它说 .between?是 Comparable Module 的一部分,我还没有调用它。
【问题讨论】:
标签: ruby comparable fixnum
例如,如果我在 irb 中键入以下内容,它会返回 Fixnum。
20.class
=> Fixnum
还有,
20.between?(10, 30)
=> true
但是,当我查看 Ruby 文档时,它说 .between?是 Comparable Module 的一部分,我还没有调用它。
【问题讨论】:
标签: ruby comparable fixnum
这是因为Fixnum 包含Comparable。
Fixnum.ancestors
# => [Fixnum, Integer, Numeric, Comparable, Object, Kernel, BasicObject]
在祖先上定义的任何内容都是可用的,除非它被更接近的祖先(或自身)覆盖。
【讨论】:
Fixnum 包含(混合)Comparable 模块:
p Fixnum.included_modules
# [Comparable, Kernel]
【讨论】: