• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2次元Hashのkeyチェック方法)

2次元Hashのkeyチェック方法

このQ&Aのポイント
  • YAMLで記述した設定ファイルを読み込んで、設定値があれば変数にセットし、なければdefault値を使うプログラムを書きたいです。
  • 現在のコードでは、2次元のHashのキーをチェックして変数にセットしていますが、もっと短く書く方法はありませんか?
  • confが3回も出てくるので、無駄を感じています。ハッシュのキーがyamlに記述されているかどうかわからない状況で書きたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

"top_dir" が無い場合、"linux" が無い場合をそれぞれ考慮するとなると、confと書くのは最低二回は要るでしょう。 nil? という判断条件をひっくり返すことで、conf["top_dir"]["linux"]を一回に出来ます。~.nil? が出てきたら見直した方が良いでしょうね。 str = conf["top_dir"] && conf["top_dir"]["linux"] || "/root" conf一回で済ませるパズル的解法としては、nilの添え字参照がエラーにならないようにする。 def nil.[](x) end str = conf["top_dir"]["linux"] || "/root" パズルの回答以外ではやめた方が良いでしょう。デバッグがしにくくなります。 begin str = conf["top_dir"]["linux"] || "/root" rescue str = "/root" end も駄目でしょう。こんな目的で例外を使ってはいけない。

ayudaia
質問者

お礼

ありがとうございました。参考になりました。

関連するQ&A