3
我繼承Enumerator
這樣的:引發ArgumentError在#NEW,子類枚舉
class CuadraticPrimeGenerator < Enumerator
def initialize(a=1,b=49)
super do |y|
x = 1
loop do
y << x**2 + a*x + b
x += 1
end
end
end
end
但是......
> CuadraticPrimeGenerator.new(1,49)
0027.rb:41:in `initialize': 49 is not a symbol (TypeError)
from 0027.rb:41:in `initialize'
from 0027.rb:48:in `new'
from 0027.rb:48:in `<main>'
的思考?
的原因是默認的枚舉類不會在2個參數取。因此,當你在沒有括號的情況下調用super時,ruby會假定你想要傳入子類中的任何參數。因此,您必須專門使用括號來告訴ruby否則。 –
現在它很有意義:) – nicooga