【发布时间】:2018-06-19 01:03:18
【问题描述】:
我对@987654321@ 有以下配置,改编自 rails doc:
Rails.application.configure do
...
config.cache_store = :redis_cache_store, url: "redis://example.com:6379/0"
...
end
使用 rails 5.2.0.beta2 和 ruby 2.3.1p112,我的 IDE 告诉我有关 config.cache_store = 行的以下信息:
- 忽略未使用的文字
- 语法错误,意外的 tLABEL
如果我将散列包含在 {} 中,错误就会消失,即:
config.cache_store = :redis_cache_store, { url: "redis://example.com:6379/0" }
是文档有误,还是 ruby 版本的问题(例如,文档可能假设 ruby >= 2.4)?
无论如何,我不明白分配实际上在做什么 - 如何将两件事分配给一个?
【问题讨论】:
-
我认为这个案例说明了在多重赋值中,你不能省略散列周围的大括号。
-
如何进行多重赋值呢?
a, b = c, d我明白,但这更像是b = c, d(大括号与否)。 -
没错。 Ruby 试图将其解释为一个数组。我要说的是
a = b, c(a = [b, c]的缩写)和a = [b, c: d](a = [b, {c: d}]的缩写)是允许的,但a = b, c: d可能是不允许的。 -
好吧,我明白了!
a = b, c等同于a = [b, c]是我所缺少的。