LoginSignup
4
0

More than 5 years have passed since last update.

Ruby tryの記法

Last updated at Posted at 2018-06-16

try(:[], :name)ってどんな動き?

ActiveSupportで追加された非常に便利なメソッド

engineer = {name: 'aoki', age: 34}
engineer.try(:[], :name)
=> "aoki"
engineer.try(:[], :prefecture)
=> nil

上記のコードの例だと、
nameというキーは存在しているので、そのまま返す
prefectureというキーはないのでnilを返す

engineer = {name: 'aoki', age: 34}
engineer&.[] :name 
=> "aoki" 

Ruby2.3以降ではこのような書き方も可能


engineer = nil
engineer[:name]
=> NoMethodError: undefined method `[]' for nil:NilClass
engineer.try(:[], :name) 
=> nil
engineer&.[] :name
=> nil

NoMethodErrorを避けたい時に便利

4
0
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0