精选文章 ruby lambda_Ruby中的Lambda

ruby lambda_Ruby中的Lambda

作者:cumubi7453 时间: 2021-02-05 09:43:35
cumubi7453 2021-02-05 09:43:35
【摘要】ruby lambda
  RubyLambdas (Ruby Lambdas) 
 In the last tutorial, we have seen what are procs, how they are implemented in Ruby and their examples? Lambdas are pretty similar to Procs. They are also...

ruby lambda

RubyLambdas (Ruby Lambdas)

In the last tutorial, we have seen what are procs, how they are implemented in Ruby and their examples? Lambdas are pretty similar to Procs. They are also used to store a set of instructions or a method inside a variable which is also the feature of Procs. You can call lambdas anywhere in your code wherever required.

在上一教程中,我们了解了什么是proc ,如何在Ruby中实现它们以及它们的示例? Lambda与Procs非常相似。 它们还用于在变量内存储一组指令或方法,这也是Procs的功能。 您可以在需要的任何地方在代码中的任何地方调用lambda

Let us see the basic syntax of Lambdas in Ruby for understanding them in a better way,

让我们看看Ruby中Lambda基本语法,以便更好地理解它们,

 variable_name = lambda {|argument1,argument2| argument1 * argument2}

You can observe that the syntax is quite similar to Procs but in Proc, we need to use ".new" method to create a Proc but here writing lambda is enough for declaring a lambda. In the above syntax, we are using curly braces and inside them, we are passing the arguments inside || block or pair of alteration symbol. We have demonstrated by multiplying the argument whereas you can do any type of processing inside the block.

您可以观察到语法与Procs非常相似,但是在Proc中,我们需要使用“ .new”方法来创建Proc,但是在这里编写lambda足以声明lambda 。 在上面的语法中,我们使用花括号,在花括号中,我们在||内部传递参数。 块或成对的更改符号。 我们通过乘以参数进行了演示,而您可以在块内进行任何类型的处理。

Now, let us go through an example of Lambda, so that we will be able to see its implementation in Ruby code.

现在,让我们看一下Lambda示例 ,以便我们能够在Ruby代码中看到其实现。

var = lambda {|arg1,arg2,arg3| puts arg1*arg2+arg3}
var[12,45,33]

Output

输出量

573

In the above code, we are creating lambda which is used to process some kind of arithmetic calculations. We are calling it by writing its name and passing arguments inside square braces like [].

在上面的代码中,我们正在创建用于处理某种算术计算的lambda 。 我们通过写它的名称并在[[]之类的方括号内传递参数来调用它。

You can also create a lambda in the following way. It is known as stabby lambda. The example is given below,

您还可以通过以下方式创建lambda 。 它被称为稳定的λ。 下面是示例

var = -> (arg1,arg2,arg3) {puts arg1*arg2+arg3}
var[12,45,33]

Output

输出量

573

We have created a stabby lambda here. The above code is modified to create a better understanding of differences that come in terms of syntax. Here we are passing arguments inside () braces and the processing is done inside the curly braces { }.

我们在这里创建了一个稳定的lambda 。 修改以上代码以更好地理解语法方面的差异。 在这里,我们在()括号内传递参数,并且在花括号{}内完成处理。

调用lambda (Calling a lambda)

We have seen this in Procs as well. Lambdas are called in the same way as Procs. There are two ways, first one is just by writing the name of the variable along with the arguments inside the square braces and the second one is by the help of the call method. The syntax is given below,

我们也在Procs中看到了这一点。 Lambda与Procs的调用方式相同。 有两种方法,第一种是通过将变量的名称以及方括号内的参数一起编写,第二种是通过call方法的帮助。 语法如下:

 variable_name.call( argument1, argument2)

Let us see its practical implementation with the help of example given below,

让我们借助以下示例查看其实际实现,

var = lambda{
	|num|
	i = 1 
	while(i<=10)
		p num * i
		i = i + 1
	end
}
var.call(34)

Output

输出量

34
68
102
136
170
204
238
272
306
340

In the above code, we are using lambda.call() method for calling the lambda.

在上面的代码中,我们使用lambda.call()方法来调用lambda。

翻译自: https://www.includehelp.com/ruby/lambdas.aspx

ruby lambda

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:NM的完整形式是什么?

下一篇:jQuery Mobile第2课

您可能感兴趣

  • JDK1.8 IO 包中的两种设计模式

    适配器模式 适配器模式是指,将一个类的接口转换成客户希望的另外一个接口。Adpter 模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作 何时使用? 在软件开发前期,类和方法的命名应该就规范地...

  • C++查找数组中的最大子数组

    C++查找数组中的最大子数组,此算法的时间复杂度为O(n)具体代码如下:   #include<stdio.h> #include<string.h> #define N 10 /* 求最大子数组问题 要求数组中有正也有...

  • C#中的Finalize,Dispose,SuppressFinalize(转载)

    MSDN建议按照下面的模式实现IDisposable接口: public class Foo : IDisposable { public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } pro...

  • 单域控制器中的exchange替换(个人总结)

    环境:一台Windows 2000 Advavced Server域控制器,上面安装着Exchange 2000邮件服务器。目的:用一台新服务器代替它,要求操作系统为2003,邮件系统升级到exchange 2003。 一. 安装 Windows 2003 提示 : 您将需要安装当前域控制器作为 DNS 服务器。 二 . 新服务器提...

  • java中的构造器

        java中,当new一个对象的时候,本质是在调用这个类的构造方法(构造器),构造器就是类中的一种方法,用于初始化对象。它必须和类名相同,且没有返回值也不用写void。不写构造器则java会自动补上无参数的构造器,如果写了有参数的构造器,那么要考虑到构造方法的重载。 public class Application { public ...

  • Java中的this、super、static和final关键字

    this关键字: 1、在类的方法中使用this关键字代表使用该方法的对象的引用 2、当必须指出当前使用方法的对象是谁时要使用this 3、 使用this处理方法中成员变量和参数重名的情况(如:this.a=a) this可以看作是...

  • 关于C++中的名字修饰以及 extern "C"

    在C/C++中, 一个程序要运行起来, 需要经历以下几个阶段: 预处理, 编译, 汇编, 链接. 而名字修饰是一种在编译过程中, 将函数, 变量的名称重新改变的机制, 简单来说就是编译器为了区分各个函数, 将函数通过某...

  • oracle数据迁移中的故障解决:

    oracle数据迁移中的故障解决: 1、数据迁移之后,出现乱码问题 解决过程  a、使用select * from nls_database_parameters;命令查看源库中的字符集,内容可能如何。(这次故障按照下面字符集内容进行解决)  SQL> select * from nls_database_param...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
ruby lambda_Ruby中的Lambda介绍:华为云为您免费提供ruby lambda_Ruby中的Lambda在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多ruby lambda_Ruby中的Lambda的相关内容。| 移动地址: ruby lambda_Ruby中的Lambda | 写博客