官术网_书友最值得收藏!

Return behavior

Secondly, lambdas and procs have different behaviors when it comes to returning values from methods. To see this, I'm going to create a method called my_method:

def my_method 
x = lambda {return}
x.call
p "Text within the method"
end

my_method

If I run this method, it prints out "Text within the method":

Now, let's try exactly the same implementation with a proc:

def my_method 
x = Proc.new {return}
x.call
p "Text within the method"
end

my_method

When you run it this time, it returns a value of nil.

What happened is that when the proc saw the return word, it exited out of the entire method and returned a nil value. However, in the case of the lambda, it processed the remaining part of the method.

So, these are the subtle and yet important differences between lambdas and procs.

主站蜘蛛池模板: 保靖县| 赤水市| 葫芦岛市| 都江堰市| 平果县| 西充县| 平武县| 韩城市| 民乐县| 米泉市| 剑河县| 什邡市| 上杭县| 博野县| 沐川县| 棋牌| 九寨沟县| 成武县| 涞水县| 乃东县| 乌兰浩特市| 洞头县| 宁蒗| 衡水市| 新余市| 宜君县| 体育| 金溪县| 谢通门县| 广西| 韶山市| 石阡县| 育儿| 深州市| 武宁县| 雷州市| 富民县| 宜兰县| 冀州市| 大城县| 元朗区|