如何拒绝具有不需要的数字范围的数组

时间:2015-07-18 09:19:21

标签: arrays ruby

我需要创建一个方法,它应该只接收1到6之间的数字数组作为参数。如果参数不同,我想退出方法并显示错误消息。

解释了什么方法得分(骰子)做here

我想过使用双条件句,例如:

if (dice.is_a? Array ) && ("elements of dice are numbers of range (1..6)")
do something
else print "error message"

代替字符串"骰子的元素是范围(1..6)和#34;我尝试了以下代码但不起作用:

dice.each { |num| num <= 6 }

你会建议什么?

2 个答案:

答案 0 :(得分:6)

使用Enumerable#all?

CreationContext

答案 1 :(得分:0)

 def score *dice
  raise "this is not an array" unless dice.is_a? Array 
  raise "atleast one value is required in array" unless dice.length > 0
  raise "array should only contain numbers between 1 to 6" unless dice.all? { |i| (1..6).include?(i) }
  #your code here#
 end