ただ、これだけでは変数として扱えてしまうので、freezeを使うことで変更不可にする。
- 配列やハッシュなどのコレクションオブジェクトをフリーズさせる
module Constants
SERVER_IPS = [
"192.168.1.10",
"192.168.1.11",
"192.168.1.12"
].map!(&:freeze).freeze
end
- 定数が定義されているモジュールごとフリーズさせる
module Constants
SERVER_IP = "192.168.1.1"
SERVER_PORT = "8080"
end
Constants.freeze
- Ruby2.1以降でループ内で文字列リテラルをフリーズさせる(ループ内で毎回文字列オブジェクトが生成されるのを防ぐ)
server_ips.any? { |ip| ip == "192.168.1.1".freeze }
0 件のコメント:
コメントを投稿