a = MyArray.new(3){ |i| (i+1).to_s }
a << 1
puts " #{a.size} #{a[1]} #{a.first} "
b = MyArray.new; b.push("a").push("b")
a += b
和我自己的a.ok(“foo”)自己的变量a.nowy等。
如何使用我自己的变量和方法以及数组的所有方法创建数组类: []每种.push删除....
P.S。是否只能采用数组中的specyfic元素?例如只有“字符串”或只有整数? 重新定义初始化?
答案 0 :(得分:0)
试试这个,但请先阅读:http://words.steveklabnik.com/beware-subclassing-ruby-core-classes
class MyClass < Array
def my_new_method
# do fancy array tricks here
end
end
答案 1 :(得分:0)
继承!
class MyClass < Array
#implement functionality
def initialize(args)
super()
end
def custom_push(element)
self.push(element)
end
end
您可以在类中创建新方法,并覆盖Array
类中已存在的方法。
值得一提的是,each
和sort
不是Array
类的方法,它们是Enumerable
模块Array
的一部分包括。这有点挑剔,但知道很重要。