Clarify return value for assignment methods.
https://github.com/ruby/ruby/pull/1682 Patch by @sos4nt [fix GH-1682] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2476bf2bb1
commit
86f1d9b705
@ -147,7 +147,7 @@ evaluated.
|
|||||||
1 + 1 # this expression is never evaluated
|
1 + 1 # this expression is never evaluated
|
||||||
end
|
end
|
||||||
|
|
||||||
Note that for assignment methods the return value will always be ignored.
|
Note that for assignment methods the return value will be ignored when using the assignment syntax.
|
||||||
Instead, the argument will be returned:
|
Instead, the argument will be returned:
|
||||||
|
|
||||||
def a=(value)
|
def a=(value)
|
||||||
@ -155,6 +155,10 @@ Instead, the argument will be returned:
|
|||||||
end
|
end
|
||||||
|
|
||||||
p(a = 5) # prints 5
|
p(a = 5) # prints 5
|
||||||
|
|
||||||
|
The actual return value will be returned when invoking the method directly:
|
||||||
|
|
||||||
|
p send(:a=, 5) # prints 6
|
||||||
|
|
||||||
== Scope
|
== Scope
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user