我正在使用ruby-docs'网站示例确定数组中最长的字符串长度,这是我正在使用的代码:
longest = twoOfArray.inject(0) {|memo,word| memo.length > word.length ? memo : word}
根据docs网站,这应该告诉我数组中最长单词的长度。但是,我收到一个错误,告诉我' .length'是一种未定义的方法。我做错了什么?
我使用的是Ruby 1.9.3版。
答案 0 :(得分:0)
您不应该在inject
方法中传递第一个参数。
正确的代码将是
longest = twoOfArray.inject {|memo,word| memo.length > word.length ? memo : word}
如果没有参数,则第一个元素将是初始memo
对象。
答案 1 :(得分:0)
对不起,我在第一次回答时没有注意到你的需要。
如果需要确定最长的字符串长度,则需要块返回长度。即。
longest = twoOfArray.inject(0) {|memo,word| memo > word.length ? memo : word.length }