【发布时间】:2013-07-24 16:20:08
【问题描述】:
我是一个经验丰富的业余程序员,我熟悉 C++、D、Java、C# 等。
除了 Go,几乎所有语言都要求我明确声明我正在实现一个接口。这简直是荒谬的,因为我们今天有像 Haskell 这样的语言的编译器,它几乎可以用很少的提示进行完整的程序类型推断。
我正在寻找的是一种编程语言:
interface ITest {
void Test();
}
class Test {
void Test() { }
}
void main() {
ITest x;
x = new Test;
}
哪些语言会看到这一点,并自动将Test 标记为实现ITest?
ETA:我不是在寻找鸭子打字。我正在寻找具有推理功能的严格类型语言。
【问题讨论】:
-
JavaScript 算不算?您可以在任何拥有它的对象上调用
Test()函数,而无需声明接口。 -
我不确定这个问题是否适合 SO。如果你想拥有一份具有 Go 惊人特性的语言列表,也许programmers.se 会更好。
-
您是否正在寻找任何使用鸭式打字的语言? JS、Python、Ruby 等?
标签: c# java interface d type-inference