2012-02-04 106 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; 
} 
相關問題