国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby中proc和lambda的兩個區(qū)別

2020-10-29 19:39:00
字體:
供稿:網(wǎng)友

1、在proc和lambda中,return關(guān)鍵字有不同含義:
在proc中,return僅僅表示從這個lambda中返回.
在lambda中,return不是從proc中返回,而是從定義proc的作用域中返回.

復制代碼 代碼如下:

def one_method
    p = Proc.new{return 10}  #調(diào)用這個塊的時候,從p的作用域直接返回10,因此下面的return將不會執(zhí)行
    result = p.call
    return result * 2
end
 
def two_method
    p = lambda{return 10}   #調(diào)用這個塊的時候,從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ù)比定義的多,會忽略多余參數(shù),如果參數(shù)比定義的少,則自動把未傳過來的參數(shù)指定為nil.
在lambda中,不管實際的參數(shù)比定義時的參數(shù)多還是少,都會拋出ArgumentError錯誤.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新疆| 永康市| 红桥区| 东平县| 石林| 富裕县| 阿瓦提县| 台前县| 邢台县| 隆安县| 安泽县| 阜平县| 留坝县| 自贡市| 云浮市| 霍林郭勒市| 北川| 桐柏县| 东辽县| 千阳县| 尚志市| 佛山市| 普兰县| 海淀区| 芮城县| 颍上县| 浙江省| 建宁县| 通山县| 江华| 石景山区| 西乌| 涿鹿县| 抚顺县| 印江| 监利县| 堆龙德庆县| 景德镇市| 仪陇县| 枣阳市| 繁昌县|