You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Example 1-1# Warning : defined local variable_1=42
# Example 1-2# No warning : defined method namedef_142end
# Example 1-3# No warning : defined parameter namedefhgoe(_1)end
# Example 1-4# In blockproc{# Warning: `_1' is used as Numbered parameter_1=42}# Example 1-5# In block and used Numbered parameterproc{_1# No warning_1=42}
Example 2. Refer to local variable _1 in block
_1=:local_variable# Example 2-1# No warningx=_1px# => :local_variable# Example 2-2# No warningpproc{ |i| _1}.call3# => :local_variable# Example 2-3# No warningpproc{_1}.call3# => :local_variable# Example 2-4pproc{_1proc{# No warning_1}.call}.call42# => :local_variable
Example 3. Refer to method _1 in block
def_1(a=nil):"method#{a}"end# Example 3-1# No warningx=_1px# => :method# Example 3-2# No warningx=_142px# => :method42# Example 3-3# No warningx=_1()px# => :method# Example 3-4# Errorpproc{ |i| _1}.call42# Example 3-5# No warningpproc{ |i| _1()}.call42# => :method# Example 3-6# No warningpproc{ |i| _1i}.call42# => :method42# Example 3-7# No warningpproc{ |i| self._1}.call42# => :method# Example 3-8# No warningpproc{_1}.call42# => 42# Example 3-9# No warningpproc{_1_2}.call42,3# => method3# Example 3-10# No warningpproc{_1()}.call42# => :method# Example 3-11# No warningpproc{self._1}.call42# => :method
Example 4. Defined local variable _1 and method _1
def_1(a=nil):"method#{a}"end_1=:local_variable# Example 4-1# No warningpproc{ |i| _1}.call3# => :local_variable# Example 4-2# No warningpproc{ |i| _1()}.call3# => :method# Example 4-3# No warningpproc{ |i| _142}.call3# => :method42# Example 4-4# No warningpproc{_1}.call3# => :local_variable# Example 4-5# No warningpproc{_1()}.call3# => :method# Example 4-6# No warningpproc{_142}.call3# => :method42
Example 5. Used eval("_1")
eval ("_1") refers to local variables in preference
The same goes for binding.local_variable_get(:_1)
If local variable _1 becomes Error, solve it?
eval("@1") is Syntax Error
# Example 5-1# Error: numbered parameter outside block (SyntaxError)pproc{eval("_1")}.call42
# Example 5-2# No warningpproc{_1;eval("_1")}.call42# => 42
_1=:local_variable# Example 5-3# No warningpeval("_1")# => :local_variable# Example 5-4# No warningpproc{eval("_1")}.call42# => :local_variable# Example 5-5# No warningpproc{_1;eval("_1")}.call42# => :local_variable
# Example 5-6pproc{_1# Error: numbered parameter is already used in# outer block hereproc{_1}.call3}.call42
# Example 5-7pproc{_1proc{# No warningeval("_1")}.call3}.call42# => 42
# Example 5-8_1=:local_variablepproc{_1proc{# No warningeval("_1")}.call3}.call42# => :local_variable
def_1;:method;end# Example 5-9# No warningp_1# => :method# Example 5-10# Error: numbered parameter outside block (SyntaxError)peval("_1")# Example 5-11# No warningpeval("_1()")# => :method# Example 5-12# Error: numbered parameter outside block (SyntaxError)pproc{eval("_1")}.call42# Example 5-13# No warningpproc{_1;eval("_1")}.call42# => 42
Example 6. Used default arguments
# Example 6-1# OKpproc{ |_1|
->(a=_1){a}.call}.call42# => 42
# Example 6-2# OK_1=:local_variablepproc{->(a=_1){a}.call}.call42# => :local_variable