在看书做笔记,提到了非操作符 () [] {} . :: 等等这些,忽然想起来 -> 算不算关键字?
->(){} 这个看起来像是个方法 Kernel#-> ?
Kernel#->
但是方法名里不能有两个这种特殊符号,所以求解?
不是关键字,不是方法
#1 楼 @FenRagwort 那是?
就是一个 token,跟 foo(args) 里的、%w这些东西一样,不是关键字,也不是方法
#3 楼 @FenRagwort 嗯,谢谢
关键字是形式上可以做变量名,但是系统保留了,不让你用来做变量名的 token ->根本形式上都不可做变量名,无所谓关键字
->(){} 这个是 1.9 的 lambda 吧
#6 楼 @bluecoda 同意,是新的 lambda 语法。
ruby 1.9.x 里:p = ->(x){ x + 1}等同于p = lambda {|x| x+ 1}
p = ->(x){ x + 1}
p = lambda {|x| x+ 1}