Unique construct for passing a hash

前端 未结 2 415
青春惊慌失措
青春惊慌失措 2021-01-27 03:58

I have never seen this construct for building a hash. do_stuff(records: records) Does this only work in a parameter list being sent to a method? Is it documented an

2条回答
  •  感情败类
    2021-01-27 04:29

    There are two things going on here. The { key: value } syntax is new in Ruby 1.9. It is equivalent to { :key => value }.

    Also, Ruby methods have some syntactical sugar that allows you to pass in a hash literal as the last argument of the method without including the curly braces. This is not new in Ruby 1.9. So

    do_stuff(key: value)
    

    Is equivalent to

    do_stuff({ key: value })
    

    Just to remind you, this only works if the hash is the last argument to the method.

提交回复
热议问题