ruby - 调用方法 'count' 返回错误数量的参数

标签 ruby

我有一个带有两个参数的方法。 (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/

相关文章:

ruby - block 参数列表中的星号

ruby - 如何优化代码 - 它有效,但我知道我错过了很多学习

ruby-on-rails - Rails 3.2.8,heroku:未初始化常量 Less::Engine

ruby-on-rails - 这些 Ruby 版本中存在 heroku 命令吗?

ruby - 编译或混淆的 Ruby

ruby-on-rails - Rails 如何解析文本/事件流?

ruby - 如何查看文件缓冲区的当前状态?

ruby-on-rails - 错误 : Undefined variable: $sidebar-spacing-horizontal

ruby - 如何使 Ruby 变量在条件表达式中的计算结果为 false

ruby-on-rails - bundle 安装失败 : Error loading Rubygems plugin after I deleted files