我可以在函数上连接一个数字和字符串吗



我正在尝试制作一个在字符串中嵌入数字的纯函数。显而易见的串联方法不起作用:

pure string foo(immutable int bar)
{
    return "Number: " ~ bar; // Error: strings and ints are incompatible.
    return "Number: " ~ to!string(bar); // Error: to() is impure.
}

有没有一种干净、实用的方法来连接数字和字符串?我想避免编写自己的串联或转换函数,但如果必须的话,我会这样做。

这似乎是to的一个长期问题。(请参阅此错误报告。)

据我所知,火卫一中没有匹配的纯函数。恐怕你只能靠自己了。


从OP编辑:我使用了一个类似于此的函数来将uints转换为strings

import std.math: log10;
pure string convert(uint number)
{
    string result;
    while (log10(number) + 1 >= 1)
    {
        immutable uint lastDigit = number % 10;
        result = cast(char)('0' + lastDigit) ~ result;
        number /= 10;
    }
    return result;
}

相关内容

  • 没有找到相关文章

最新更新