Project

General

Profile

Feature #13979

Updated by nobu (Nobuyoshi Nakada) almost 3 years ago

You can't use keywords as names for normal arguments. For example all of these give a syntax error: 

 ~~~ruby ~~~ 
 def foo(class); end 
 def foo(def); end 
 def foo(if); end 
 # ... other keywords too 
 ~~~ 

 The reason is that there's no way to refer to these names because they are keywords. 

 However, we can use these names for keyword arguments. All of these work: 

 ~~~ruby ~~~ 
 def foo(class: 1); end 
 def foo(def: 1); end 
 def foo(if: 1); end 
 ~~~ 

 But I think they should give a syntax error, because for example I can't refer to the argument "class" in the first line (same reason why the first snippet gives a syntax error).

Back