simple question: pointer equivalent in ruby

S

Shea Barton

learned ruby a few months ago - is there a pointer equivalent in ruby
for setting the variable referenced by the return value of a function,
rather than just getting it?

like something that would allow you to do this.

def method
@value
end

@value = 5
method = 3
@value (should be 3)
 
P

Parker Selbert

Shea Barton wrote in post #954956:
OR even

value = 5
othervalue = value
othervalue = 3
value (should be 3)

That is precisely how ruby works by default. If you wanted othervalue to
just take the 'value' of value, i.e. 3, you would use this instead:

value = 5
other = value.dup
puts other #5
other = 3
puts other #3
puts value #5
 
D

Dhruva Sagar

[Note: parts of this message were removed to make it a legal post.]

Well generally for such situations you create setters, the example you gave
includes only a getter.

def method=(val)
@value = val
end

that will then allow you to do method = 3 & that will in turn set @value to
3.

Although I don't see what exactly you wanted to know or what you're example
had to do with pointers...
 
D

David A. Black

Hi --

Shea Barton wrote in post #954956:

That is precisely how ruby works by default. If you wanted othervalue to
just take the 'value' of value, i.e. 3, you would use this instead:

value = 5
other = value.dup

Have you tried running that? :)


David

--
David A. Black, Senior Developer, Cyrus Innovation Inc.

The Ruby training with Black/Brown/McAnally
Compleat Stay tuned for next event!
Rubyist http://www.compleatrubyist.com
 
R

Robert Klemme

what about the first example with the method?

method = 3 will always assign to a local variable. If you really want
to produce other side effects you need to do

self.method = 3

The topic seems to come up more frequently in recent time. I don't know
whether Ruby community experiences increased migration from C++
developers or what the reason for this is. I believe the fact that
people search for something call by reference in said language indicates
that they do not have adjusted to the Ruby mindset yet. Shea, if you
provide more context we might be able to help you understand how the
problem you are trying to solve is usually solved in Ruby - without call
by reference.

Kind regards

robert
 
S

Shea Barton

I was confused about the way that ruby assigns and stores variables.

I fixed my problem using setters and getters.

thanks for the help
 
P

Parker Selbert

David A. Black wrote in post #954969:
Hi --



Have you tried running that? :)

Doh!

I really should have gone with a non nil, symbol, number example instead
=)

Shea said:
I fixed my problem using setters and getters.

If you're now writing manual accessors (method, method=) definitely look
at attr_accessor, which will save you a lot of work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,268
Latest member
AshliMacin

Latest Threads

Top