Mic*_*win 4 ruby hash hash-of-hashes
当尝试访问数组数组深处的元素时,如果元素不存在,避免出现错误“undefined method `[]” for nil:NilClass”的最佳方法是什么?
例如,我目前正在这样做,但对我来说似乎很糟糕:
if @foursquare['response']['groups'][0].present? && @foursquare['response']['groups'][0]['items'].present?
Run Code Online (Sandbox Code Playgroud)
Ruby 2.3.0 引入了一种在两者上调用的新方法digHash,Array可以与新的安全导航运算符 ( &.) 结合使用来解决您的问题。
@foursquare.dig('response', 'groups')&.first&.dig('items')
Run Code Online (Sandbox Code Playgroud)
nil如果任何级别缺少值,都会返回该值。
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |