我用D语言编写了一个计算斐波那契数列的小程序。它应该是最有效的,因为我这样做是为了比较D语言和其他语言的执行速度。然后我在dlang.org(这里:http://dlang.org/attribute#nogc)上阅读了@nogc属性,并尝试像这样使用它:
@nogc
@safe
uint fibonacci(uint index)
{
if(index < 2)
return index;
return fibonacci(index - 2) + fibonacci(index - 1);
}
我尝试了DMD 2.065和GDC 4.8.2,但都告诉我:Error: undefined identifier nogc
我做错了什么吗?@nogc现在还没有实现吗?
@nogc
是一个新属性,在DMD 2.066中首次实现。
将支持全新的@nogc特性的第一个编译器是DMD v2.066。稳定版还没有发布,目前只发布了几个测试版(2014年7月底)。一旦DMD 2.066发布,我们就有理由说D支持它。在此之前,我们只能说这是一个实验性的D功能。