Ruby
1class Team 2 COUNTRIES = ['Japan', 'US', 'India'].freeze 3end 4 5Team::COUNTRIES.frozen? 6Team::COUNTRIES.all? { |country| country.frozen? } 7 8class Bank 9 CURRENCIES = deep_freeze({'Japan' => 'yen', 'US' => 'dollar', 'India' => 'rupee' }) 10end 11 12Bank::CURRENCIES.frozen? 13Bank::CURRENCIES.all? { |key, value| key.frozen? && value.frozen? }
これを実行したら、
Traceback (most recent call last):
1: from product.rb:8:in <main>' aruma.rb:9:in
class:Bank': undefined method `deep_freeze' for Bank:Class (NoMethodError)
↑このようなエラーがでました。
このコードはどこが間違っていますか?
なにが違うのかわかりません。
deep_freezeメソッドを定義しても同じエラー文が出てしまいました。
定義した場所が間違っていますか?
Ruby
1class Team 2 COUNTRIES = deep_freeze(['Japan', 'US', 'India']) 3 def deep_freeze 4 end 5end 6 7Team::COUNTRIES.frozen? 8Team::COUNTRIES.all? { |country| country.frozen? } 9 10class Bank 11 CURRENCIES = deep_freeze({ 'Japan' => 'yen', 'US' => 'dollar', 'India' => 'rupee' }) 12 def deep_freeze 13 end 14end 15 16Bank::CURRENCIES.frozen? 17Bank::CURRENCIES.all? { |key, value| key.frozen? && value.frozen? }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/08/15 15:39