0

我在哪里可以找到RangeRuby 源代码中的类方法。我特别在寻找Range#last方法。红宝石-v MRI 1.9.2

4

2 回答 2

6

你可以在这里找到 Ruby 源代码

https://github.com/ruby/ruby/

range.c的根目录中有一个。

对于Range#last源代码中的实现,我认为它在这里:

https://github.com/ruby/ruby/blob/trunk/range.c#L602

http://www.ruby-doc.org/core-1.9.3/Range.html#method-i-last

于 2012-07-14T05:30:25.850 回答
2

就个人而言,我更喜欢看Rubinius源代码,因为我发现它比 YARV 的可读性强得多。您正在寻找的方法在kernel/common/range.rb中,它只是@end实例变量的 getter:

attr_reader :end
alias_method :last, :end

@end实例变量在方法initialize设置。换句话说:该last方法总是简单地返回您传递给的值Range.new

请注意,在这种情况下,Rubinius 的实现符合 Ruby 1.8 语言规范,并且尚未更新到具有可选count参数的 Ruby 1.9 规范。

于 2012-07-14T09:50:04.363 回答