Hi,
In message "[ruby-talk:19749] Re: Why not?: Assigning to self"
on 01/08/15, Ryo Furue <furufuru / ccsr.u-tokyo.ac.jp> writes:
|Thanks for pointing that out here! In fact I knew that, but my
|misunderstanding was that we could, within an instance method, make
|self refer to a different object, as if
|
| void meth(void*& self) { // reference to pointer
| void* s = new String("hello");
| self = s; // self now points to a String object.
| }
|
| void* a = new Array(3.14, 2.9);
| meth(a);
| cout << *(String*)a << '\n'; // prints "hello".
|
|This much was my misunderstanding.
Yes. There's no such thing like "reference (in C++)" in Ruby. I
consider it harmful.
|I think the correct interpretation
|would be something like
|
| void meth(void* self) { // pointer
| void* s = new String("hello");
| self = s;
| // self now points to a String object, but the effect
| // doesn't propagate to the caller. Would need to copy
| // the String object into the memory pointed to by self.
| }
And I think you agree that it's useless.
matz.