在ruby doc中哪里定义了string.chars?

时间:2010-09-10 20:19:31

标签: ruby string char chars

我一直在通过解决项目euler问题来学习ruby,在一个问题的解决方案中我看到你可以做"12341".chars.inject(1) { |prod, n| prod * n.to_i }之类的事情。

我查看了ruby doc,但我找不到定义String#chars的位置。

任何人都能解释一下这是如何运作的吗?

3 个答案:

答案 0 :(得分:2)

它不存在于1.8.6中,如果你看http://ruby-doc.org/core/,就会得到它,但它出现在1.8.71.9 documentation中。

String#chars只返回一个Enumerator(一个提供Enumerable接口的类),它依次产生字符串的每个字符。这允许您调用inject,它将遍历Enumerable中的每个项目,将块应用于该项目以及您收集结果的值。在这种情况下,您从值1开始,并在每次迭代时将该值乘以每个字符的整数值。

答案 1 :(得分:1)

记录在案here

答案 2 :(得分:0)

Rails的ActiveSupport最初也是monkeypatched String#chars。他们在答案中使用Rails还是ActiveSupport?