【发布时间】:2013-07-12 20:51:27
【问题描述】:
什么是更短的版本?:
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。
【问题讨论】:
-
一个重要且未问的问题是。您想将值从 hash 重新分配到 vars 的目的是什么?
-
@MichaelSzyndel 我无法解析您上面的评论。
-
为什么要使用
from = hash.fetch(:from); to = hash.fetch(:to);... 而不是hash[:from]? -
这是一个普遍的问题,有太多不同的用例需要提及,就像有时需要通过使用
fetch而不是[]来避免静默失败一样,有时需要使用values_at的获取版本。
标签: ruby-on-rails ruby hash destructuring