![]() |
1
5
第二种情况类似于可出错的操作工厂。如果你把你想做的事情交给一个代表,
2之间的执行差异在于它们实际执行的时间。第一个将在调用时执行。第二个将在返回时执行
|
![]() |
2
4
(2)可以进一步组成,而(1)只是运行。但两者都不是“功能性”的
所以有了(2)你可以做到:
…并获得预期的行为。这不适用于(1) |
![]() |
3
1
在C中,方法2可能会令人困惑。调用者可能会使用“fault(a,b);”来期望调用a和可能的b。相反,创建、返回和丢弃lambda。换句话说,什么都不做。 在效率方面,如果大多数调用的形式为“fault(a,b)();”,即立即调用lambda,则方法2有点浪费。在这种情况下,不需要lambda。 基于这些原因,我更喜欢方法1。如果需要延迟执行,可以显式地引入lambda“()=>fault(a,b)”。 |
![]() |
C_Rod · 在模板方法中确定STL容器中项目的数据类型 2 年前 |
![]() |
chenyuandong · Elixir中的元编程 6 年前 |
![]() |
Marcos Felipe · 基于存储的变量进行比较 6 年前 |
![]() |
TheDelChop · 动态定义对象#为Ruby类初始化 7 年前 |
![]() |
Mathieu Van Nevel · 将结构拆分为元组[重复] 7 年前 |
![]() |
Jonathan Mee · 如何防止为未实现方法的对象生成模板 7 年前 |
![]() |
spring cc · 如何在python元编程中使用实例方法? 7 年前 |