这可能是一个更美观的问题,但我发现它真的很烦人,因为我总是得到一些丑陋的代码。可读性总是很重要的,对吧?
我想检查一个值是否存在于散列中的散列中。所以我要做的就是这个。
already_exists_data[:data][:user_id]
但是如果 :data 为 nil 并且检查 :data 可能会给我一个 nullpointer 异常,如果 already_exists_data 为 nil。所以我最终得到的是:
if already_exists_data && already_exists_data[:data] && already_exists_data[:data][:user_id]
# Do stuff
end
现在这是一些看起来很讨厌的代码。也许我应该将哈希修改为一个对象。但我有时会碰到这个问题,想知道你们是如何面对它的。
我目前正在使用 Ruby 进行编码,但我在使用多种其他语言时遇到了这个问题。