我有一个带有两个参数的方法。 (max_length) 的整数和 (text) 的字符串。如果文本中每个单词的字符数 >= max_length,我们会从数组中删除该单词。最后我们计算数组中剩余的单词。
我的方法运行良好,直到 text.count
遇到 'wrong number of arguments, given 0 expected 1+'
我知道
这是因为我们没有将任何参数传递给text.count
但我不想传递任何参数因为我只想计算数组中剩余的单词数。
但是,如果我执行一个简单的例子
x = ["This", "Will", "Work"]
x.count => 3
为什么我不能在我的 block 中使用这个计数示例?
我做错了什么?
def timed_reading(max_length, text)
text.split.delete_if do |y|
y.length >= max_length
text.count
end
end
最佳答案
我想这就是你想要做的
def timed_reading(max_length, text)
text.split.delete_if { |y| y.length >= max_length }.count
end
你可以只计算长度小于最大值的单词
text.split.count { |y| y.length < max_length }
关于ruby - 调用方法 'count' 返回错误数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45351207/