包括参数的限制,返回值的限制和类状态大的限制,还有自动的unittest!!!!!
long square_root(long x)
in //参数
{
assert(x >= 0);
}
out (result) //返回
{
assert((result * result) == x);
}
body
{
return math.sqrt(x);
}
class Date
{
int day;
int hour;
invariant //类状态
{
assert(1 <= day && day <= 31);
assert(0 <= hour && hour < 24);
}
}
D对unittest的支持
class Sum
{
int add(int x, int y) { return x + y; }
unittest
{
assert(add(3,4) == 7);
assert(add(-2,0) == -2);
}
}
unittest在main以前会自动被调用
D对contracts programming的支持
最新推荐文章于 2024-06-14 12:09:08 发布