“ lambda表达式”的优点是什么?

奥列克西

lambda表达式的原因是以“更方便的方式”隐式生成函数对象。从下面的示例中可以看到,它不仅较不方便且较长,而且具有令人困惑的语法和符号。

它有什么用,它实际上使代码更具可读性吗?

cout << count(vec, [&](int a){ return a < x; }) << endl;  // lambda
cout << count(vec, Less_than<int> (x)) << endl;           // normal functor def-n
蚂蚁

它更具可读性,因为它将函数的实现直接放在调用它的位置,从而使自然的自上而下的代码流保持不变。

您会看到,普通功能各有利弊。一方面,函数有助于减少代码中的重复,这使代码更加结构化和可读性强。另一方面,函数破坏了自然的代码流并将控制权转移到一个完全不同的位置。出于明显的原因,这可能会降低可读性:就像读一本充满嵌套的前向和后向引用的书一样。

因此,为了正确利用普通函数的属性,应该使用它们来实现经过深思熟虑,完整和孤立的抽象。这样,普通函数将提高代码的可读性。

但是对于小的“一次性”一次性使用的实用程序代码,普通功能不能很好地工作。实际上,它们会使代码的可读性大大降低。这是lambda函数出现的地方。它们允许人们在必要时将一次性的实用代码直接插入到调用点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回表达式后定义函数的使用场景或优点是什么

来自分类Dev

在OrderBy中lambda表达式的意义是什么?

来自分类Dev

真正的lambda是什么样的?(不是linq lambda表达式)

来自分类Dev

<=表达式是什么意思?

来自分类Dev

正则表达式是什么?

来自分类Dev

这是什么表达式 [:?] 或 [?:]

来自分类Dev

&&对lambda表达式有什么好处?

来自分类Dev

编写递归lambda表达式以获取所有相关数据的最佳方法是什么?

来自分类Dev

System.out :: println的等效lambda表达式是什么

来自分类Dev

使用lambda表达式在Scheme中定义函数的原因是什么?

来自分类Dev

lambda表达式中变量名的约定是什么?

来自分类Dev

在lambda表达式中引用的“安全”解除局部变量的规则是什么?

来自分类Dev

带主体的lambda表达式的确切类型是什么?

来自分类Dev

定义函数时,lambda函数/表达式是什么类型?

来自分类Dev

spark映射内的lambda表达式中的*是什么意思?

来自分类Dev

打破lambda表达式箭头的TsLint规则名称是什么?

来自分类Dev

在.stream()和Collector中使用lambda表达式的正确方法是什么?

来自分类Dev

C++:在 lambda 表达式中捕获的目的是什么?

来自分类Dev

livedata observable Kotlin 的 lambda 表达式中的“让”是什么意思

来自分类Dev

错误:lambda表达式的预期主体..(什么是Lambda ???)

来自分类Dev

表达式&&表达式语法是什么意思?

来自分类Dev

能够在Java 8 lambda表达式中有效使用最终变量的好处是什么?

来自分类Dev

C#编译器用来解析lambda表达式中的类型的规则是什么?

来自分类Dev

为什么给出错误表达式不能包含lambda表达式?

来自分类Dev

空行的正则表达式是什么?

来自分类Dev

此正则表达式中\\ +的含义是什么?

来自分类Dev

AngularJS表达式中的$ locals是什么?

来自分类Dev

这种模式的正则表达式是什么?

来自分类Dev

PHP [\ w \-]正则表达式的含义是什么

Related 相关文章

  1. 1

    返回表达式后定义函数的使用场景或优点是什么

  2. 2

    在OrderBy中lambda表达式的意义是什么?

  3. 3

    真正的lambda是什么样的?(不是linq lambda表达式)

  4. 4

    <=表达式是什么意思?

  5. 5

    正则表达式是什么?

  6. 6

    这是什么表达式 [:?] 或 [?:]

  7. 7

    &&对lambda表达式有什么好处?

  8. 8

    编写递归lambda表达式以获取所有相关数据的最佳方法是什么?

  9. 9

    System.out :: println的等效lambda表达式是什么

  10. 10

    使用lambda表达式在Scheme中定义函数的原因是什么?

  11. 11

    lambda表达式中变量名的约定是什么?

  12. 12

    在lambda表达式中引用的“安全”解除局部变量的规则是什么?

  13. 13

    带主体的lambda表达式的确切类型是什么?

  14. 14

    定义函数时,lambda函数/表达式是什么类型?

  15. 15

    spark映射内的lambda表达式中的*是什么意思?

  16. 16

    打破lambda表达式箭头的TsLint规则名称是什么?

  17. 17

    在.stream()和Collector中使用lambda表达式的正确方法是什么?

  18. 18

    C++:在 lambda 表达式中捕获的目的是什么?

  19. 19

    livedata observable Kotlin 的 lambda 表达式中的“让”是什么意思

  20. 20

    错误:lambda表达式的预期主体..(什么是Lambda ???)

  21. 21

    表达式&&表达式语法是什么意思?

  22. 22

    能够在Java 8 lambda表达式中有效使用最终变量的好处是什么?

  23. 23

    C#编译器用来解析lambda表达式中的类型的规则是什么?

  24. 24

    为什么给出错误表达式不能包含lambda表达式?

  25. 25

    空行的正则表达式是什么?

  26. 26

    此正则表达式中\\ +的含义是什么?

  27. 27

    AngularJS表达式中的$ locals是什么?

  28. 28

    这种模式的正则表达式是什么?

  29. 29

    PHP [\ w \-]正则表达式的含义是什么

热门标签

归档