2013-06-15 10 views
12

実際に面白い会議がD-Specific Design Patternsについて行われ、Dコミュニティでは、効果的なコーディングテクニックを扱うための出発点になると思っている人もいました。他の人たちは、あまりにも多くの人々が多くの経験を持っていないので、あまりにも早いと主張します。そのような本の著者は、効果の概念について偏見的/個人的な感謝を得るでしょう。 SOはよりインタラクティブなメディアです(制限付き)。だから、「効果的なD」が出てくるのを待って、Dコードをより良く見せるためにいくつかの(殺す)アドバイス/テクニック/パターンを分かち合うことができれば素晴らしいことでしょう。 (コードへのリンクだけである(それが大きすぎる場合)コード 有効D:ベストプラクティスとデザインパターン

  • コメント

    • 独自の技術
    • を露出させ、実質的にの一部です:私は答えがあれば、それはより明確になると思います公共の要点...)
  • +1

    の下で発見されます。 –

    +0

    質問を「変換する」方法はありますか? – matovitch

    +0

    誰かが十分に高い担当者を抱えているかもしれません。 –

    答えて

    5

    私は私のblog123)には、いくつかのDのヒントポストを持っています。

    ここに1つです:Testing With TypeTuple


    機能をテストするとき、それは異なる入力の範囲でそれをテストするために、通常は良い考えですが。これを行うには、入力値の配列に対してforループを簡単に使用することができますが、入力が型の場合は、テンプレートコードを使用するとよくありますが

    Dプログラミング言語は、あなたがそうあなたがする必要があるすべてはあなたがテストしたいすべてのタイプのタプルを宣言し、通常の方法でそれらを反復され、TypeTupleを反復処理することができます:

    import std.typetuple; 
    alias TypeTuple!(int, long, double) Types; 
    foreach (T; Types) 
        test!T(); 
    

    これをコンパイルするのに不思議に思うかもしれません。結局のところ、ループの本体はTによって変化するので、生成されたコードも各反復ごとに変化しなければならない。コンパイラはこれをどのように処理しますか?

    答えは、ループが完全に展開されていることです。あなたはコードの膨張を避けるために、あなたのTypeTuplesの大きさに目を維持したい場合があり、このため

    test!int(); 
    test!long(); 
    test!double(); 
    

    :上記のコードは、文字通り同じです。 D-イディオム/パターンのコレクションがある

    +0

    大きなヒント!特に、微妙な文字列型の例を通して汎用コードで範囲を使用することの関心に関するもの。 – matovitch

    関連する問題