Ruby中的Lambda
RubyLambdas
在上一教程中,我们了解了什么是proc,如何在Ruby中实现它们以及它们的示例?Lambda与Procs非常相似。它们还用于在变量内存储一组指令或方法,这也是Procs的功能。您可以在需要的任何地方在代码中的任何地方调用lambda。
让我们看一下Ruby中Lambda的基本语法,以便更好地理解它们,
variable_name = lambda {|argument1,argument2| argument1 * argument2}
您可以观察到语法与Procs非常相似,但是在Proc中,我们需要使用“.new”方法来创建Proc,但是在这里编写lambda足以声明lambda。在上面的语法中,我们使用花括号,在花括号中,将参数传递给||。块或成对的更改符号。我们通过乘以参数进行了演示,而您可以在块内进行任何类型的处理。
现在,让我们看一下Lambda的示例,以便我们能够在Ruby代码中看到其实现。
var = lambda {|arg1,arg2,arg3| puts arg1*arg2+arg3} var[12,45,33]
输出结果
573
在上面的代码中,我们正在创建用于处理某种算术计算的lambda。我们通过写它的名称并在[]等方括号内传递参数来调用它。
您还可以通过以下方式创建lambda。它被称为稳定的λ。下面是示例
var = -> (arg1,arg2,arg3) {puts arg1*arg2+arg3} var[12,45,33]
输出结果
573
我们在这里创建了一个稳定的lambda。修改以上代码以更好地理解语法方面的差异。在这里,我们在()括号内传递参数,并在花括号{}内完成处理。
调用lambda
我们也在Procs中看到了这一点。Lambda与Procs的调用方式相同。有两种方法,第一种是通过将变量的名称以及方括号内的参数一起编写,第二种是通过call方法的帮助。语法如下:
variable_name.call( argument1, argument2)
让我们借助以下示例了解其实际实现,
var = lambda{ |num| i = 1 while(i<=10) p num * i i = i + 1 end } var.call(34)
输出结果
34 68 102 136 170 204 238 272 306 340
在上面的代码中,我们正在使用lambda。call()
调用lambda的方法。