12

少し前に「The D Programming Language」を購入しました。素晴らしい本、非常に教育的です。ただし、本にリストされている言語機能をコンパイルしようとすると問題が発生します:拡張機能。

この本の中で、Andrei は次のように任意の function(a, 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 をインポートすると配列にメソッドが追加されるため、あるレベルで実装されているように見えます。

4

2 に答える 2

12

セクション 5.9.1 で説明した「疑似メンバー」のことだと思います。現在、この機能は配列に対してのみ実装されていますが、これは計画された機能です。D コミュニティでは、「Uniform Function Call Syntax」と呼ばれることもあります。

この機能が実装されたときにクローズされるバグレポートは次のとおりです:問題 3382

于 2011-10-14T21:42:18.980 に答える
2

統一関数呼び出し構文が実装されていることを述べたいだけです。

Dr. Dobbs の素晴らしい記事があります: Dr. Dobbs のUniform Function Call Syntax

于 2012-04-04T08:27:36.747 に答える