作者tonytonyjan (南洋大兜虫)
看板Ruby
标题Re: [无用] .call()可省略call
时间Fri Aug 29 13:08:17 2014
1. 这是 1.9 之後加上的语法糖衣,为了隐藏 call 方法,文件上有写
ref:
http://www.ruby-doc.org/core-2.1.2/Proc.html#method-i-5B-5D
2. Ruby 无法定义 :() 方法
我认为理由是 Ruby 呼叫方法时括号是可以省略的,牵扯到核心设计
※ 引述《AIGecko (壁虎猫耳控)》之铭言:
: 偶然忘了打函式只打了小括号
: 发现.()等同.call()
: ->(){print "hello, world"}.() #=>hello, world
: ->(){print "hello, world"}.call() #=>hello, world
: 不只是Proc
: 其他物件只要有call这个方法都可以这样用
: class C
: def call
: print "hello, world"
: end
: end
: C.new.() #=>hello, world
: 这谁会发现啊...
: 而且可读性也不好...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.219.118.91
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Ruby/M.1409288901.A.7B2.html
※ 编辑: tonytonyjan (61.219.118.91), 08/29/2014 13:12:31