gpt4 book ai didi

ruby - Lambda 与 Proc 在内存和效率方面的对比

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:12 24 4
gpt4 key购买 nike

我知道应该在不同的情况下使用 Procs 和 lambda(lambda 检查参数的数量等),但它们占用的内存量是否不同?如果是,哪个更有效?

最佳答案

Lambdas 和 Procs 之间存在一些差异。

  1. Lambda 具有所谓的“小返回”。这意味着 Lambda 会将流程返回给调用它的函数,而 Proc 将从调用它的函数返回。

     def proc_demo
    Proc.new { return "return value from Proc" }.call
    "return value from method"
    end

    def lambda_demo
    lambda { return "return value from lambda" }.call
    "return value from method"
    end

    proc_demo #=> "return value from Proc"
    lambda_demo #=> "return value from method"
  2. Lambda 会检查传递给它们的参数数量,而 Proc 则不会。例如:

     lambda { |a, b| [a, b] }.call(:foo)
    #=> #<ArgumentError: wrong number of arguments (1 for 2)>

    Proc.new { |a, b| [a, b] }.call(:foo)
    #=> [:foo, nil]

关于ruby - Lambda 与 Proc 在内存和效率方面的对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18221562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com