Ruby中的Lambda

Ruby Lambdas

在上一教程中,我们了解了什么是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的方法