54得票4回答
Haskell中的动态分派

例如,用Java编写的程序在很大程度上依赖于动态调度。 在Haskell等函数式语言中如何表达这些程序? 换句话说,“动态调度”背后的想法在Haskell中是如何表达的?

49得票3回答
特性无法转换为对象

我有如下代码:extern crate futures; // 0.1.24 use futures::Future; use std::io; struct Context; pub trait MyTrait { fn receive(context: Context) -&...

31得票4回答
Swift协议扩展方法被调用,而不是在子类中实现的方法。

我遇到了一个问题,下面的代码(Swift 3.1)对其进行了解释:protocol MyProtocol { func methodA() func methodB() } extension MyProtocol { func methodA() { ...

27得票6回答
Swift是否具有动态调度和虚拟方法?

由于我的C++/Java/C#背景,我原本期望在Swift中看到虚方法,但是阅读Swift文档后发现没有提到虚方法。 我错过了什么? 由于浏览量众多,我决定为最新、最清晰/详细的答案提供奖励。

22得票1回答
为什么称之为“开放(或封闭)递归”?

I found some explanations of open/closed recursion, but I do not understand why the definition contains the word "recursion", or how it compares wi...

13得票1回答
在Swift中函数中的动态修饰符

根据 Apple: 当您使用 dynamic 修饰符标记成员声明时,对该成员的访问始终是动态分派的。由于使用 Objective-C 运行时分派标记了使用 dynamic 修饰符标记的声明,它们隐式地标记为 @objc 属性。 根据 Wikipedia: 动态分派是在运行时选择调用多态操...

11得票3回答
没有访问者模式的动态派发

问题 我正在使用一个已经存在的库,但我无法访问其源代码。这个库代表了一个AST。 我想复制这个AST的部分,并在此过程中重命名变量的引用。由于可能会有一个包含Expression对象的AssignCommand-Object,我希望能够通过自己的函数递归地调用每个对象进行复制。然而,由于我...

11得票2回答
嵌套单例类方法查找

首先,我明白这个问题在现实世界中没有应用,我只是好奇。 假设我们有一个带有单例方法的类:class Foo def self.bar end end 如果我们调用Foo.bar,它首先会在每个祖先类的单例类中搜索一个方法,然后再在由.class方法引用的类及其祖先类中查找。我...

9得票2回答
协变返回类型和类型转换

s->duplicate() 返回一个类型为 Box* 的对象,但我在使用 Box* 初始化时出现了错误。看起来它被转换回了 Shape*。如果它被转换回基类指针,那么有什么意义使用协变返回类型呢? struct Shape { virtual Shape* duplicate...

9得票3回答
Java中绑定和分派有什么区别?

有许多相关术语:早期和晚期绑定,静态和动态分派,运行时与编译时多态性等,我不了解它们的区别。 我找到了一个清晰的解释,但它正确吗?我会用JustinC的话来解释: 绑定:是确定变量(对象?)类型。如果在编译时执行,那么是早期绑定。如果在运行时执行,那么是晚期绑定。 分派:是确定哪个方法匹...