Re: [無用] .call()可省略call

看板Ruby作者 (南洋大兜蟲)時間10年前 (2014/08/29 13:08), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
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://www.ptt.cc/bbs/Ruby/M.1409288901.A.7B2.html ※ 編輯: tonytonyjan (61.219.118.91), 08/29/2014 13:12:31
文章代碼(AID): #1K00h5Uo (Ruby)
文章代碼(AID): #1K00h5Uo (Ruby)