Ruby中proc和lambda的兩個(gè)區(qū)別
1、在proc和lambda中,return關(guān)鍵字有不同含義:
在proc中,return僅僅表示從這個(gè)lambda中返回.
在lambda中,return不是從proc中返回,而是從定義proc的作用域中返回.
def one_method
p = Proc.new{return 10} #調(diào)用這個(gè)塊的時(shí)候,從p的作用域直接返回10,因此下面的return將不會(huì)執(zhí)行
result = p.call
return result * 2
end
def two_method
p = lambda{return 10} #調(diào)用這個(gè)塊的時(shí)候,從lambda中返回10
result = p.call
return result * 2 #繼續(xù)執(zhí)行
end
puts one_method # 10
puts two_method # 20
2、在proc和lambda中,檢查參數(shù)的方式不同:
在proc中,如果參數(shù)比定義的多,會(huì)忽略多余參數(shù),如果參數(shù)比定義的少,則自動(dòng)把未傳過來的參數(shù)指定為nil.
在lambda中,不管實(shí)際的參數(shù)比定義時(shí)的參數(shù)多還是少,都會(huì)拋出ArgumentError錯(cuò)誤.
- 實(shí)例講解C++編程中l(wèi)ambda表達(dá)式的使用
- 結(jié)合C++11新特性來學(xué)習(xí)C++中l(wèi)ambda表達(dá)式的用法
- C++中的Lambda表達(dá)式詳解
- C++實(shí)現(xiàn)的一個(gè)可以寫遞歸lambda的Y函數(shù)
- Ruby中使用Block、Proc、lambda實(shí)現(xiàn)閉包
- python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用指南
- Python中的特殊語法:filter、map、reduce、lambda介紹
- Ruby中的block、proc、lambda區(qū)別總結(jié)
- 淺析C++11新特性的Lambda表達(dá)式
相關(guān)文章
學(xué)習(xí)Ruby你需要了解的相關(guān)知識(shí)(rvm, gem, bundle, rake, rails等)
這篇文章主要介紹了學(xué)習(xí)Ruby你需要了解的相關(guān)知識(shí)(rvm, gem, bundle, rake, rails等),需要的朋友可以參考下2014-06-06Ruby元編程之夢(mèng)中情人method_missing方法詳解
這篇文章主要介紹了Ruby元編程之夢(mèng)中情人method_missing方法詳解,本文講解了我該怎么用 method_missing 、方法代理、define_method、什么時(shí)候用 method_missing、元方法等內(nèi)容,需要的朋友可以參考下2015-05-05Ruby中實(shí)現(xiàn)把字符串轉(zhuǎn)換為類的2種方法
這篇文章主要介紹了Ruby中實(shí)現(xiàn)把字符串轉(zhuǎn)換為類的2種方法,其中一種是rails提供的方法,需要的朋友可以參考下2014-10-10Ruby連接使用windows下sql server數(shù)據(jù)庫代碼實(shí)例
這篇文章主要介紹了Ruby連接使用windows下sql server數(shù)據(jù)庫代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,而且給出了兩種實(shí)現(xiàn)和access數(shù)據(jù)庫的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05Ruby 中關(guān)于日文轉(zhuǎn)UTF-8及半角全角轉(zhuǎn)換的技巧
Ruby 中關(guān)于日文轉(zhuǎn)UTF-8及半角全角轉(zhuǎn)換的技巧,實(shí)現(xiàn)代碼。2009-05-05Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南
Rails項(xiàng)目通過Ruby世界中的gem和rake工具來構(gòu)建起來真的相當(dāng)方便,這里就給大家整理了一份Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南,需要的朋友可以參考下2016-06-06Ruby實(shí)現(xiàn)命令行中查看函數(shù)源碼的方法
這篇文章主要介紹了Ruby實(shí)現(xiàn)命令行中查看函數(shù)源碼的方法,,需要的朋友可以參考下2014-07-07