"then"セクションを 'If?'セクションに追加しないと、最初の2つのテストケースで次のコードが期待される出力を生成できないのはなぜですか?私は2番目の変数 "False"のデフォルト値を設定しました。Rubyではメソッドが不特定多数のパラメータを取る可能性があり、メソッドが呼び出されたときにパラメータがないと、デフォルト値設定されている場合は、メソッド内のそのパラメータの値を返します。RubyでIf/Then構造体がIf/Then構造体を使用しないで記述されているのはなぜですか?
def alphabetize(arr,rev=false)
arr.sort!
if rev == true
arr.reverse!
end
end
numbers = [1,9,2,1,10]
テストケース:
print alphabetize(numbers,false)
=begin
input: numbers,false
output: nil
expected output: 1,1,2,9,10
=end
print alphabetize(numbers)
=begin
input: numbers
output: nil
expected output 1,1,2,9,10
=end
print alphabetize(numbers,true)
=begin
input: numbers,true
output: 10,9,2,1,1
expected output: 10,9,2,1,1
=end
このコード生成期待結果:
def alphabetize(arr,rev=false)
if rev == true
arr.sort!.reverse!
else
arr.sort!
end
end
numbers = [1,9,2,1,10]
最後のテストケースはどのように機能しましたか? – brooklynsweb
@brooklynsweb私はさらに明確化を加えました。それが意味をなさないかどうか私に教えてください。 – phss
その説明は理にかなっていますが、私は別の例を書いて、当初期待したとおりに動作します。違いはなんですか?コメントフィールドにコードの書式設定オプションがないことは残念です。ペーストビンです:http://pastebin.com/NGYYpqjB。更新:言い換えれば、2番目のテストケースは 'nil'を返しませんでした。なぜなら、 'if'が失敗した場合に定義されたアクションがなかったからです。 – brooklynsweb