有效的D:最佳实践和设计模式

时间:2013-06-15 19:40:40

标签: d phobos

关于D-Specific Design Patterns的一个非常有趣的会议,在D社区,有些人认为这可能是book处理有效编码技术的起点。其他人认为现在为时尚早,因为没有多少人拥有 很多经验,这样一本书的作者会对有效性的概念有一些偏见/个人欣赏。 SO是一种更具互动性的媒体(有其局限性)。因此,等待'Effective D'出来,如果我们可以分享一些(查杀)建议/技术/模式以使D代码看起来更好,那将是很好的。我想如果答案会更清楚:

  • 揭示一种独特的技术
  • 基本上是一段评论代码
  • (如果它太大)只是代码的链接(公共要点......)

2 个答案:

答案 0 :(得分:5)

我的blog1 2 3)上有几个D提示帖子。

这是一个:Testing With TypeTuple


在测试函数时,通常使用一系列不同的输入进行测试通常是个好主意。要做到这一点,你可以轻松地在输入值数组上使用for循环,但是如果你的输入是一个类型,通常是模板代码呢?

D编程语言允许你迭代一个TypeTuple,所以你需要做的就是声明你想要测试的所有类型的元组,并以正常的方式迭代它们:

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

你可能想知道这是什么编译的。毕竟,循环的主体随T变化,因此生成的代码也必须在每次迭代时变化。编译器如何处理这个?

答案是循环完全展开。上面的代码字面上与:

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

出于这个原因,您可能需要密切关注TypeTuples的大小,以避免代码膨胀。

答案 1 :(得分:1)

https://p0nce.github.io/d-idioms/

下可以找到一组d-idioms / patterns