【发布时间】:2019-09-06 00:13:28
【问题描述】:
我想在 Ruby 中使用try 提取一个值。
我发现有两种方法可以做到这一点,并在 irb 中使用它。
>> hash = { a: 1, b: 2 }
=> {:a=>1, :b=>2}
>> hash.try(:a)
=> nil
>> hash.try(:[], :a)
=> 1
我有两个问题,
-
hash.try(:[], :a)和hash.try(:a)有什么区别?我四处搜寻,发现人们同时使用这两种方式。 - 我看到很多地方使用 hash.try(:a) 来检索值,但为什么我的试用返回 nil?
【问题讨论】:
-
你在哪里看到
hash.try(:a)?如果hash确实是一个散列,那没有多大意义。会不会是hash.dig(:a)? -
@EricDuminil
hash.try(:a)是我在 irb 控制台中输入的内容,看看我是否可以从中获得价值。
标签: ruby-on-rails ruby