Ruby中的常量分配错误?

aro*_*ick 3 ruby

我们在Ruby中发现了一些奇怪的代码,我想知道是否有人可以解释它:

$ irb
irb(main):001:0> APPLE = 'aaa'
=> "aaa"
irb(main):002:0> banana = APPLE
=> "aaa"
irb(main):003:0> banana << 'bbb'
=> "aaabbb"
irb(main):004:0> banana
=> "aaabbb"
irb(main):005:0> APPLE
=> "aaabbb"
Run Code Online (Sandbox Code Playgroud)

抓住那个?常量被附加到局部变量的同时.

已知行为?预期?

And*_*imm 6

已知行为.常量并不意味着你不能修改它引用的对象,只是如果你将它分配给另一个对象它会给你一个警告(并且只是一个警告).

简而言之,红宝石常数不是.

注意:此行为列在"应该警告新手应该注意哪些Ruby问题?" 的答案中.这是值得一读的.

  • 它们基本上是常数*引用*.Java的工作方式基本相同. (2认同)