如何在方法的参数中显示一个空值(nil)?

3
这是我在这里的第一篇帖子,我是一个超级初学者,我想解决一个练习。
我想知道如何显示作为方法参数的nil。这是我尝试过的代码,但期望的结果并不符合我的期望,你能帮我吗?谢谢。
def who_is_bigger(a, b, c)
  max_number = 84
  the_nil = c
  if max_number == a
    puts "a is bigger"
  elsif max_number == b
    puts "b is bigger"
  elsif max_number == c
    puts "c is bigger"
  elsif the_nil == nil
    puts "nil detected"
  else
    puts "nil detected"
  end
end
  
puts who_is_bigger(84, 42, nil)
puts who_is_bigger(nil, 42, 21)
puts who_is_bigger(84, 42, 21)
puts who_is_bigger(42, 84, 21)
puts who_is_bigger(42, 21, 84)

我的终端返回了这个结果;
a is bigger
nil detected
a is bigger
b is bigger
c is bigger

但是我想要这个;

nil detected
nil detected
a is bigger
b is bigger
c is bigger

你想返回哪个属性是最大的?还是想返回哪个参数具有值 84 - spickermann
1个回答

3

在其他条件之前,需要先在开头进行nil检查。

def who_is_bigger(a, b, c)
  if [a, b, c].include?(nil)
    puts "nil detected"
    return
  end
  max_number = 84
  if max_number == a
    puts "a is bigger"
  elsif max_number == b
    puts "b is bigger"
  elsif max_number == c
    puts "c is bigger"
  else
    puts "nil detected" # this should really be max_number not found
  end
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接