Feature #9060
closed"Assignment" operator overloading
Description
=begin
I understand assignment in ruby is assigning an object to the variable. However there are other cases we need to use assignments. For example:
class Foo
end
class Bar < Foo
end
f = Foo.new
b = Bar.new
//Some operations on b
Now we want ((|f|)) to contain the same data as ((|b|)). But if we use (({f = b})), ((|f|)) will not be (({Foo})) any more.
Or we can define a method like (({Foo##loadFromBar})), but (({Foo})) is the super class of (({Bar})) and usually defined before (({Bar}))...
Can we have something like:
f := b
so that ((|f|)) will have the same shared data with ((|b|))?
And we can even load data from other classes by overloading this operator:
class Foo
def :=(f)
@data = f
end
end
f = Foo.new
f := 2.2
We can always achieve this by defining a named method, but this operator can provide some syntax sugar and convenience.
=end