在阅读了这篇关于 Ada 和 C++ 的有趣文章并了解了 D 对 CTFE 和函数的常量参数专业化的支持之后,我想知道在 D 中是否可以比在 C++ 中更容易/更有效地实现 Ada 样式范围类型。有没有人可能已经写过这样的图书馆?
如果这样的范围可以在 D 中有效地实现并且对开发人员友好,它可以用作在需要确定性以及类型和内存安全性(D 已经大放异彩)的领域(例如航空电子和汽车)建立 D 的推动者。D 将因此获得更多开发者的兴趣和更强大的财务支持。
在阅读了这篇关于 Ada 和 C++ 的有趣文章并了解了 D 对 CTFE 和函数的常量参数专业化的支持之后,我想知道在 D 中是否可以比在 C++ 中更容易/更有效地实现 Ada 样式范围类型。有没有人可能已经写过这样的图书馆?
如果这样的范围可以在 D 中有效地实现并且对开发人员友好,它可以用作在需要确定性以及类型和内存安全性(D 已经大放异彩)的领域(例如航空电子和汽车)建立 D 的推动者。D 将因此获得更多开发者的兴趣和更强大的财务支持。
将标量(有界)变量作为模板在 D 中很容易完成,事实上我记得我看到了有人已经做过的代码。不幸的是,我不记得我在哪里看到的。这就是说,恕我直言,它没有必要成为语言的一部分,而是标准库的一部分。
(编辑:亚当让我想起了代码:http ://arsdnet.net/dcode/ranged.d )
范围是更广泛的概念,在 Andrei 的文章中得到了很好的解释 - http://www.informit.com/articles/printerfriendly.aspx?p=1407357&rll=1。这种类型的范围现在是 D 的核心概念。D 的切片是最强大的范围 - RandomAccessRange的实现。
例子:
import std.stdio;
import std.algorithm;
void main()
{
int[] values = [ 1, 20, 7, 11 ]; // values is a RandomAcessRange
writeln(filter!(value => value > 10)(values));
}
好读: