Is there any performance implications if I do either of these:
def do_something(user, article)
...
end
versus
def do_someth
Re: https://stackoverflow.com/a/6528257 (I didn't have enough reputation to comment at time of writing)
Ah, but Jörg, if you actually manipulate the argument, instead of assigning a new object to it, the method behaves differently. Using .replace instead of = gives you this:
def is_Ruby_pass_by_value_or_reference?(parameter)
parameter.replace 'Ruby is pass-by-reference.'
end
var = 'Ruby is pass-by-value.'
is_Ruby_pass_by_value_or_reference?(var)
puts var
# Ruby is pass-by-reference.
In fact, let's elaborate just a little more, just to show the difference:
def is_Ruby_pass_by_value_or_reference?(parameter)
parameter.replace 'Ruby is pass-by-reference.'
parameter = "This assigns a whole new object to 'parameter', but not to 'var'."
puts parameter
end
var = 'Ruby is pass-by-value.'
is_Ruby_pass_by_value_or_reference?(var)
# This assigns a whole new object to 'parameter', but not to 'var'.
puts var
# Ruby is pass-by-reference.