暇なときにRubyを学んでいますが、定数の言語構成について質問があります。Rubyには、変数が変更されないようにするためのC ++ constキーワードに相当するものがありますか?次にいくつかのサンプルコードを示します。
first_line = f.gets().chomp()
column_count = first_line.split( %r{\s+} ).size()
print column_count, "\n"
column_countをconstとして宣言したいのは、以下のプログラムで使用していて、誤って変更したくないためです。Rubyはこれを行うための言語構造を提供しますか、それとも私はそれを吸い上げて、私の変数が常に可変であることを理解する必要がありますか?
コメントへの回答:
「変数の「偶発的な」上書きの最も可能性の高い原因は、おそらく、コードの長いブロックです。」私はあなたの主張の精神に同意しますが、手紙には同意しません。コードの長いブロックや不要な状態を回避することについてのあなたのポイントは良いものですが、定数については、実装内のコードの設計を説明するのにも役立ちます。コード内のconstの値の大部分は、変更する必要がある変数と変更しない変数に注釈を付けることで得られるため、来年コードに戻っても変更したくありません。これは、適切な変数名と明確なインデントのために短いコメントを使用するコードが、詳細なコメントで説明される厄介に書かれたコードよりも優れていることを示唆するのと同じ感情です。
もう1つのオプションは、Rubyの#freezeメソッドのようです。これも、見た目が気に入っています。みなさん、ありがとうございました。