はじめに
移植やってます
self.extend (Python)
class xlist (list):
def add(self, *args):
self.extend(args)
class xint (int):
def add(self, value):
self += value
x = xlist([1,2,3])
print (x)
x.add (4, 5, 6)
print (x)
x = xint(10)
print (x)
x.add (2)
print (x)
# [1, 2, 3]
# [1, 2, 3, 4, 5, 6]
# 10
# 10
self
に直接extend
や+
ってできるんですね。
どうする? (Ruby)
class Xlist < Array
def initialize(*args)
args.each do |x|
self << x
end
end
def add(*args)
args.each do |x|
self << x
end
end
end
class Xint < Array
def initialize(*args)
args.each do |x|
self[0].nil? ? self[0] = x : self[0] += x
end
end
def add(*args)
args.each do |x|
self[0] += x
end
end
end
x = Xlist.new(1, 2, 3)
p x
x.add(4, 5, 6)
p x
x = Xint.new(10)
p x[0]
x.add(2)
p x[0]
# [1, 2, 3]
# [1, 2, 3, 4, 5, 6]
# 10
# 12
トリッキーですが、何とかできました。
メモ
- Python の self.extend を学習した
- 道のりは遠そう