![]() |
1
19
您需要的是lambda表达式,类似于:
这个捕捉
|
![]() |
2
6
你说你想用C
C语言
iow,它用于返回迭代器的下一个元素。以下是官方的msdn文档中的一个简短示例:
像这样使用它:
Ruby等价物应该类似于:
在C,
事实上,在鲁比,
想象一下,如果
这有点麻烦。在Ruby1.9中,我们得到了proc文本和
然而,松本由纪弘注意到,
巨大的
大多数高阶程序只需
一
过程参数。(尤其是因为Ruby在语言中内置了多个控制流构造,否则将需要多个过程参数,比如
现在,因为我们只能将一个块传递给一个方法,所以我们实际上不需要显式地命名变量,因为无论如何都不可能有歧义:
但是,由于我们现在不再有可以向其发送消息的名称,因此我们需要其他方法。同样,我们得到了一个80/20的解决方案,这对于Ruby来说是非常典型的:有
吨
对一个块可能要做的事情:转换它,将它存储在一个属性中,将它传递给另一个方法,检查它,打印它…但是,通过
远的
最常见的做法是称之为。因此,matz为这个常见的情况添加了另一种专门的快捷方式语法:
所以,什么
是
C相当于Ruby的
c当量为 确切地 相同的:
|
![]() |
3
1
我可以将委托传递给迭代器。
|
![]() |
4
0
我不确定是否还有其他构造可以使用,可能是lambda表达式的构造。 |
![]() |
5
0
你可以拥有
|
![]() |
ali · flex box最佳实践 2 年前 |
![]() |
Jan Wytze · Scala隔离特定平面图 7 年前 |
![]() |
Scott Deerwester · 在Go中包装多个实现 7 年前 |
![]() |
Moshe · 有没有办法做这个干衣机 7 年前 |
![]() |
Josh Kelley · 惯用角形构件 7 年前 |
![]() |
Karol Selak · 如何使用冗余的'let!`方法调用? 7 年前 |
![]() |
Brandon Benefield · JS类和OOJ 7 年前 |
![]() |
TheNovice · 跨两个Ruby模块继承/共享代码 7 年前 |