2016-05-31 4 views
0

私はRubyのエクササイズをしていますが、何が間違っているのか分かりません。私はsumaメソッドを変更して、私のテストが両方とも真を返すようにする必要があります。基本的なRubyエクササイズ - 方法と​​その場合

コードを削除したり引数を変更したりする場合は、別のものを追加することはできません。何か不足していますか?

def suma(a, b) 
    "#{a} es mayor que #{b}" if a > b 
    "#{a} no es mayor que #{b}" 
end 

#test 
p suma(10, 5) == "10 es mayor que 5" 
p suma(4, 23) == "4 no es mayor que 23" 
+0

Rubyは常にメソッドの最後の式を返します。この場合、2番目の文は依然として実行チェーンの最後にあります。 – PatNowak

答えて

2

最初の条件文にはreturnがありません。

def suma(a, b) 
    return "#{a} es mayor que #{b}" if a > b 
    "#{a} no es mayor que #{b}" 
end 

デフォルトではRubyはメソッドの最後のステートメントを返しますが、それは早期リターンが可能になります。 a > bなら早く帰りたいので、Rubyに多くのことを伝えなければなりません。それ以外の場合は、行を実行し、メソッドの最後のステートメントに戻ります。

関連する問題