【发布时间】:2011-03-02 16:54:15
【问题描述】:
我早就意识到 Ruby 中的“常量”(即大写的变量名)真的不是常量。像其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。 (边栏:Ruby 确实具有“冻结”被修改的引用对象的功能,据我所知,这在许多其他语言中是不具备的。)
所以这是我的问题:当您将值重新分配给常量时,您会收到如下警告:
>> FOO = 'bar'
=> "bar"
>> FOO = 'baz'
(irb):2: warning: already initialized constant FOO
=> "baz"
有没有办法强制 Ruby 抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。
【问题讨论】: