Ruby 尽管方法调用正确,但“至少一个”参数错误

Ruby 尽管方法调用正确,但“至少一个”参数错误,ruby,Ruby,我试图解决一个Ruby难题,在这个难题中,我定义了一个方法来确定一个数字是否属于“Kaprekar”类型。我一直得到以下论点: C:\Users\Lemuel\Desktop\RubyProjects\RubyMonk>ruby kaprekars_n.rb kaprekars_n.rb:8:in `count': wrong number of arguments (at least 1) (ArgumentError) from kaprekars_n.rb:8:in `

我试图解决一个Ruby难题,在这个难题中,我定义了一个方法来确定一个数字是否属于“Kaprekar”类型。我一直得到以下论点:

C:\Users\Lemuel\Desktop\RubyProjects\RubyMonk>ruby kaprekars_n.rb
   kaprekars_n.rb:8:in `count': wrong number of arguments (at least 1) (ArgumentError)
    from kaprekars_n.rb:8:in `kaprekars'
    from kaprekars_n.rb:13:in `<main>'
在以下代码之后:

 def kaprekars(n)
  numStr = n.to_s 
  numDigits = numStr.count numStr
  squareNum = n*n
  x = []
  squareNum.to_s.each_char {|c| x << c }
  l = x[0..(numDigits-1)].inject(:+)
  r = x[l.count..(x.count)].inject(:+)
  sum = l+r 
  sum == n ? true : false
 end

puts kaprekars(2)
终端中的实验表明,我正确地使用了计数方法,因此我不理解错误

如果在多个位置使用count,则问题在第8行:

应该是:

r = x[l.size..(x.size)].inject(:+)
一些解释-两者都有一个计数方法,但它们不同,并且需要不同数量的参数:

数组的计数返回数组中的元素数,如果给定,则返回等于给定参数的元素数 String's count统计与作为参数给定的字符集交集相匹配的字符数。它至少需要一个字符串参数。 和都有一个size方法,返回数组或字符串的大小

当您第一次调用numStr.count numStr时,实际上是在计算字符串中的所有字符,因此您也可以使用numStr.size,但这是一个合法的调用


在第8行中,您尝试调用x上的count,这是一个数组,调用l上的count是一个没有任何参数的字符串,这导致了失败。

谢谢。我不熟悉尺码法。你能解释一下为什么我只能在一个地方使用计数法吗?
r = x[l.size..(x.size)].inject(:+)