我有阵列
numbers = [ 1, 2, 3, 4, 5, 6 ]
我有一个变量:
number = 4
我希望循环for或每个块返回false,除非这种情况下的数字4存在于数组中。
numbers.each do |number_loop|
return false unless number_loop == number
end
但是我收到了一个错误:
LocalJumpError:意外返回 from(irb):25:在`block in irb_binding'
答案 0 :(得分:1)
除非您在此处隐藏的块中执行其他操作,否则您为什么不这样做:
return false if numbers.include? number
至于你得到LocalJumpError
的原因:如果你的代码不在某个方法中,那么就没有任何东西可以返回(或换句话说:没有什么可以跳回到)。在这种情况下,您可能尝试设置变量而不是返回,并且您希望这样做:
is_included = numbers.include? number
答案 1 :(得分:0)
尝试:
numbers.include?(number)
它应该有用。
答案 2 :(得分:0)
正如其他人所说,您应该使用#include?
来检查是否包含在内。另请查看#any?
和#all?
,它们可用于检查集合中的任何或所有元素是否与某个块匹配。