在阿雷拉分级(调整了一些投入价值编码的阵列) I ve defined #concat
to ensure Value are forcedd. 由于没有人使用<代码>#concat,因此更有可能使用<代码>#+=。 我试图将<代码>#+=至#concat
包括在内,但似乎从未援引过。 任何想法?
请注意,如果该编码似乎不做我描述的内容,则该编码实际上总是与某一超级舱的物体(后者接受建筑商的投入)。 它是内部的、私人的APIC的一部分。
class CoercedArray < Array
def initialize(type)
super()
@type = type
end
def push(object)
object = @type.new(object) unless object.kind_of?(@type)
super
end
def <<(object)
push(object)
end
def concat(other)
raise ArgumentError, "Cannot append #{other.class} to #{self.class}<#{@type}>" unless other.kind_of?(Array)
super(other.inject(CoercedArray.new(@type)) { |ary, v| ary.push(v) })
end
alias :"+=" :concat
end
<代码>#concat正在正确操作,但#+=
似乎完全绕过。