2012-02-04 102 views
6

我想做一个纯函数,在数字中嵌入一个数字。明显的级联方法不起作用:我可以在功能上连接数字和字符串吗?

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

是否有一个干净的函数式连接数字和字符串?我想避免编写自己的连接或转换函数,但如果必须的话,我会。

回答

4

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

据我所知,Phobos中没有匹配的纯函数。我怕你自己。从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; 
} 
相关问题