这是一个什么样的缩短版呢?
from = hash.fetch(:from)
to = hash.fetch(:to)
name = hash.fetch(:name)
# etc
注意fetch
,如果键不存在,我想要引发一个错误。
一定有更短的版本,例如:
from, to, name = hash.fetch(:from, :to, :name) # <-- imaginary won't work
如果需要的话,可以使用ActiveSupport。
from = hash.fetch(:from); to = hash.fetch(:to);
而不是直接使用hash[:from]
? - Mike Szyndelfetch
而不是[]
来避免无声失败一样,有时也需要使用一个fetch
版本的values_at
。 - matthew.tuck