Ruby core library Сложный класс можно назвать так, как если бы он был методом.Как Ruby `Complex` вызывается как метод, когда он является классом?
Complex.class #=> Class
Complex(1, 2) #=> (1+2i)
Как это возможно?
Я мог бы переопределить []
, но не ()
.
class MyComplex
def self.[](real, image) # This works.
"#{real} + #{image}i"
end
def self.()(real, image) # This is not allowed in ruby.
"#{real} + #{image}i"
end
end
MyComplex[1,2] #=> "1+2i"
MyComplex(1,2) # I want this working like Complex class.
См. Http://stackoverflow.com/q/28845222/477037 – Stefan