string reverse(string str) pure nothrow
{
string reverse_impl(string temp, string str) pure nothrow
{
if (str.length == 0)
{
return temp;
}
else
{
return reverse_impl(str[0] ~ temp, str[1..$]);
}
}
return reverse_impl("", str);
}
据我所知,这段代码应该进行尾调用优化,但我不知道 DMD 是否正在这样做。哪些 D 编译器支持尾调用优化,它们会在这个函数上执行它吗?