因此,我正在 CodeAcademy 上学习 Ruby 课程,但我一直在区分变量和类之间的差异。有人可以向我解释一下其中的区别吗?我给你饼干! ^^。无论我在网上哪里查找,都找不到任何有关此的信息。
Ruby 中常量的想法是,它们只能分配一次值,而您可以根据需要多次为变量分配新值。现在从技术上讲,您甚至可以为常量分配新值。然而,在这种情况下,Ruby 会发出警告,您应该尽量避免这种情况。
我想导致 Ruby 新手感到困惑的主要一点是,即使分配给常量的值也可以在没有警告的情况下进行修改(例如,通过向数组添加新元素)。常量的引用与此处的变量没有什么不同,因为引用不限制可以对该值执行的操作。变量或常量引用的对象始终与其无关。
在此示例中,我将一个新数组分配给ARRAY
持续的。稍后,我可以愉快地通过向数组添加新成员来更改数组。常数与此无关。
ARRAY = []
# => []
ARRAY << :foo
ARRAY
# => [:foo]
唯一禁止的(或者,好吧,允许但有警告)是如果您尝试为常量分配一个全新的值:
ARRAY2 = []
# => []
ARRAY2 = [:bar]
# warning: already initialized constant ARRAY2
ARRAY2
=> [:bar]
因此,通常的做法是立即冻结分配给常量的值,以完全拒绝任何进一步的更改并确保保留原始值(除非有人分配新值):
ARRAY3 = [:foo, :bar].freeze
ARRAY3 << :baz
# RuntimeError: can't modify frozen Array
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)