Project

General

Profile

Actions

Feature #9060

closed

"Assignment" operator overloading

Added by popoxee (Bruce Metz) over 10 years ago. Updated over 10 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:58073]

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

Actions

Also available in: Atom PDF

Like0
Like0Like0