从数组ruby中删除所有元素并引发错误

问题描述:

我对Ruby很新颖。我正在研究的一个项目是要求将数组添加到数组,其最大容量为5.从数组ruby中删除所有元素并引发错误

一旦数组已满(即其中有五个对象),我需要返回错误消息并清除阵列。我已经设法分别执行这两个操作,如下面的代码所示,但我一直无法将它们结合起来。

@capacity = 5 

def full? 
    array_count == @capacity 
end 

def raise_error_clear 
    raise 'Array is full' if full? 
end 

我已经设法删除阵列中的所有元素,如果达到数组的最大容量。

def raise_error_clear 
    array.clear if full? 
    end 

我希望有人也许能够帮助解释如何结合这两个,所以一个错误信息,并给出阵列在同一时间被清除。我认为下面的代码可以工作,但我收到一个错误。

def raise_error_clear 
    raise 'Airport is full' && array.clear if full? 
    end 
+2

的陈述中左到右的顺序,这就是为什么会抛出异常和数组保持不变检查你可能会交换指令(控制流被传递到excepion处理程序等。无论是。): '(array.clear && raise'Array is full。Cleared。')if full?'。 – mudasobwa 2015-02-07 12:55:04

你可以把它放在if条件中。

def raise_error_clear 
    if(full?) 
    array.clear 
    raise 'Airport is full' 
    end 
end 
+0

订单很重要,而不是'if'操作员风格。 – mudasobwa 2015-02-07 12:57:36

+0

@mudasobwa不是和OP试图做的一样吗? – 2015-02-07 12:59:11

+0

您以非常罕见的方式使用括号... – spickermann 2015-02-07 13:20:25