我不久前买了“The D Programming Language”。很棒的书,很有教育意义。但是,我在尝试编译书中列出的语言功能时遇到了麻烦:扩展功能。
在书中,Andrei 写道,任何函数(a, b) 都可以像这样调用:a.function(b); 所以我应该能够做到这一点:
struct Person {
string name;
}
void foo(Person person, string name) {
person.name = name;
}
void main() {
auto bob = Person();
bob.foo("Bob Dole"); // ERROR: Person does not have method 'foo'
}
正确的?这个功能还没有实现,还是我只是错过了什么?我注意到导入 std.range 会将方法添加到数组中,因此它似乎确实在某个级别上实现了。