次のコードがあります。
def test_compare()
if true
condition = true
else
condition = false
end
assert_equal(true, condition)
end
Ruby では、 「 ruby のローカル スコープがわかりません」に従ってif
、ブロック内の変数はブロック外で宣言された変数と同じスコープを持ちます。if
最初に変数を宣言したり、制御構造の外で初期化したりせずに、制御構造内で変数を初期化するのは一般的な方法ですか?
Java.NET のバックグラウンドから来ると、これによりコードが読みにくくなり、ロジックの誤りが発生しやすくなります。
私は「Ruby で .NET コードを書かない」ように最善を尽くしていますが、スコープの先頭または制御構造の外側でスコープ変数を宣言するよりも上記のほうが理にかなっている理由を理解したいと考えています。