diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | doc/syntax/assignment.rdoc | 12 |
2 files changed, 17 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Sat Jan 19 09:27:31 2013 Eric Hodel <drbrain@segment7.net> + + * doc/syntax/assignment.rdoc (Local Variables and Methods): Made it + more clear that local variables are created by the parser, not + execution. Thanks to John Hawthorn. + Sat Jan 19 09:15:58 2013 Eric Hodel <drbrain@segment7.net> * doc/syntax/assignment.rdoc: Improved links diff --git a/doc/syntax/assignment.rdoc b/doc/syntax/assignment.rdoc index 830ba39ff0..c371593fbe 100644 --- a/doc/syntax/assignment.rdoc +++ b/doc/syntax/assignment.rdoc @@ -70,7 +70,17 @@ have not assigned to one of these ambiguous names ruby will assume you wish to call a method. Once you have assigned to the name ruby will assume you wish to reference a local variable. -This leads to some potentially confusing code, for example: +The local variable is created when the parser encounters the assignment, not +when the assignment occurs: + + a = 0 if false # does not assign to a + + p local_variables # prints [:a] + + p a # prints nil + +The similarity between method and local variable names can lead to confusing +code, for example: def big_calculation 42 # pretend this takes a long time |