【发布时间】:2015-12-22 18:41:38
【问题描述】:
我正在尝试使我的程序中的所有哈希都成为 ActiveSupport::OrderedHash。
我可以通过 ::Hash = ActiveSupport::OrderedHash 覆盖 Hash.new 构造函数,但 {}.class 仍然是哈希。
def {} 给我一个语法错误。
建议这是this question 的副本,但我不认为是这样。我的问题不是关于子类化 Hash,而是关于覆盖默认的 { } => Hash 构造函数。
【问题讨论】:
-
没有。它不是一个对象,它是一种语法。这就像问“我可以覆盖
if”。 -
从 1.9 开始,ruby 中的哈希是有序的,那么使用 ActiveSupport::OrderedHash 有什么意义呢?
-
@pleaner 您的问题与一样,我们能否覆盖def ()。但我们不能。
标签: ruby-on-rails ruby activesupport