ruby源代码中的范围类?

时间:2012-07-14 05:02:54

标签: ruby

在哪里可以找到Ruby源代码中Range类的方法。我特别想找Range#last方法。 Ruby -v MRI 1.9.2

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

就个人而言,我非常喜欢查看Rubiniussource code,因为我发现比YARV更多可读。您要查找的方法位于kernel/common/range.rb,它只是@end实例变量的getter:

attr_reader :end
alias_method :last, :end

@end实例变量在initialize method中设置。换句话说:last方法只会返回您传递给Range.new的值。

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