Ruby “红宝石”;每一个;方法
为什么下面的方法返回的不是字符串的长度,而是字符串Ruby “红宝石”;每一个;方法,ruby,arrays,iterator,Ruby,Arrays,Iterator,为什么下面的方法返回的不是字符串的长度,而是字符串 def length_finder(input_array) lengths = [] input_array.each do |string| lengths << string.length end end >> array = %w{ lol testtest l} => ["lol", "testtest", "l"] >> length_finder(array) =&g
def length_finder(input_array)
lengths = []
input_array.each do |string|
lengths << string.length
end
end
>> array = %w{ lol testtest l}
=> ["lol", "testtest", "l"]
>> length_finder(array)
=> ["lol", "testtest", "l"]
这来自于上的练习,因为
每个都返回接收器输入数组
,这是一个字符串数组。请尝试此代码
def length_finder(input_array)
lengths = []
input_array.each do |string|
lengths << string.length
end
return lengths
end
以“input_array.each”开头的行上的缩进表示“end”语句与.each方法连接在一起。因为它是在缩进较少的范围内定义的,所以长度仍然由缩进最多的行填充
lengths << string.length
length但是length
与每个返回的内容无关。我仍然不明白为什么行的长度是你期望的长度。在最后一个“结束”之前添加长度,该变量将被返回<代码>长度
与每个
返回的内容无关。您期望的length是什么注意:您可以将input_array.map{| item | item.length}
写成input_array.map(&:length)
。
def length_finder(input_array)
input_array.map {|item| item.length}
end
lengths << string.length