数组不使用模运算符

时间:2014-02-22 17:11:32

标签: ruby arrays

第一个代码有效,但我不明白为什么第二个代码没有。任何见解将不胜感激。我知道在这个例子中我真的不需要一个数组,我只是想让它为了学习而工作。

def stamps(input)
  if input % 5 == 0
    puts 'Zero!'
  else
    puts 'NO!'
  end
end

print stamps(8)

但这不起作用:

array_of_numbers = [8]

def stamps(input_array)
  if input_array % 5 == 0
    puts 'Zero!'
  else
    puts 'NO!'
  end
end

print stamps(array_of_numbers)

2 个答案:

答案 0 :(得分:0)

因为input_array是一个数组而8是一个数字。使用first检索数组的第一个元素。

array_of_numbers = [8]

def stamps(input_array)
  if input_array.first % 5 == 0
    puts 'Zero!'
  else
    puts 'NO!'
  end
end

print stamps(array_of_numbers)

答案 1 :(得分:0)

以下函数适用于输入为数字或数组的情况:

def stamps(input)
  input = [input] unless input.is_a?(Array)
  if input.first % 5 == 0
    puts 'Zero!'
  else
    puts 'NO!'
  end
end