我想要做的是创建一个可以将数组作为参数的方法。数组中应该有一些数字。该方法将返回数组包含其中每个数字的次数。我知道可能有很多方法可以做到这一点,但如果人们能帮助我理解为什么我的方法不起作用而不是仅仅建议我做一些完全不同的事情,我将不胜感激。
所以我开始尝试这个方法
def score (dice)
dice.each do |die|
x = /(die)/.match(dice.to_s).length
end
x
end
并调用它score ([5])
期望得到 1 的输出。但是,我得到
NoMethodError: undefined method `length' for nil:NilClass
from t2.rb:22:in `block in score'
from t2.rb:21:in `each'
from t2.rb:21:in `score'
from (irb):2
from /home/macs/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'
我也尝试过稍微改变 match 语句(去掉to_s
),所以它是
def score (dice)
dice.each do |die|
x = /(die)/.match(dice).length
end
x
end
并用score ([5])
我得到
TypeError: no implicit conversion of Array into String
from t2.rb:22:in `match'
from t2.rb:22:in `block in score'
from t2.rb:21:in `each'
from t2.rb:21:in `score'
from (irb):2
from /home/macs/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'
真的不知道我应该如何完成这种匹配。