これは表面的な問題かもしれませんが、いつも醜いコードになってしまうので、本当に面倒です。読みやすさは常に重要ですよね?
ハッシュ内のハッシュに値が存在するかどうかを確認したい。だから私がすることはこれです。
already_exists_data[:data][:user_id]
しかし、:data が nil の場合は nullpointer 例外が発生し、 already_exists_data が nil の場合、:data をチェックすると nullpointer が返される可能性があります。だから私が最終的にはこれです:
if already_exists_data && already_exists_data[:data] && already_exists_data[:data][:user_id]
# Do stuff
end
これは見栄えの悪いコードです。おそらく、代わりにハッシュをオブジェクトに変更する必要があります。しかし、私は時々この問題に出くわし、皆さんがどのようにそれに立ち向かうのか疑問に思っていました.
現在Rubyでコーディングしていますが、他の複数の言語でこの問題が発生しました。