如何進(jìn)行代碼塊打包 && proc vs lambda

proc和lambda的對比:

proc和lambda都是代碼塊打包的工具
不同之處在于:
proc對參數(shù)的自適應(yīng)性,多則刪,少填nil;lambda嚴(yán)格匹配
proc從block中返回,而lambda從function中返回

block is not a object in truth,but method is a clallable object

callable objects wrap-up

可調(diào)用對象本質(zhì)上是可以執(zhí)行的代碼片段(擁有自己的作用域)
塊在定義它的作用域中執(zhí)行;
proc也跟塊一樣,也在定義它們的作用域中執(zhí)行
lambda和proc一樣都是閉包,同樣在定義它的作用域中執(zhí)行
method綁定于對象,在綁定的對象的作用域中執(zhí)行,它們可以與這個作用域解除綁定,再重新綁定到另一個對象的作用域上。(與其說綁定到對象上,不如說綁定到作用域上。)
在方法和lambda中,return語句從可調(diào)用對象(我的理解是function)中返回,在block和proc中,return從定義可調(diào)用對象的原始上下文(我的理解是塊本身)中返回。
如果proc代碼塊中的ruturn引起錯誤,可以通過隱去return關(guān)鍵字,來避免錯誤的出現(xiàn)。
一種可調(diào)用對象,可以轉(zhuǎn)換成另一種可調(diào)用對象:
Proc.new()
Method#to_proc()
& operator

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,697評論 19 139
  • 最近復(fù)習(xí)了下 ruby 對象模型的知識,參照了 Ruby Metaprogramming,于是邊看邊做筆記,還是收...
    張羽辰閱讀 598評論 0 4
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,853評論 18 399
  • 花香襲人 美酒醉人 甜蜜的氣泡酒 比茶要搖搖欲墜些 淡淡的果香與悠游的甜味 似是有著溫馨甜笑的曼妙女郎 春日里最浪...
    元寶團(tuán)子多喜樂閱讀 424評論 0 1
  • 一座烏煙瘴氣的城市,輕飄飄的煙塵,遮掩著慵懶的人們。但凡在這里呆上一段時(shí)間,就會察覺這里的人奇怪的地方。因?yàn)槟阌^察...
    達(dá)達(dá)尼央閱讀 280評論 0 0

友情鏈接更多精彩內(nèi)容