连接整数变量最惯用的方法是什么?

ell*_*iel 4 string concatenation rust

编译器似乎没有推断整数变量作为字符串文字传递到concat!宏中,所以我找到了stringify!将这些整数变量转换为字符串文字的宏,但这看起来很难看:

fn date(year: u8, month: u8, day: u8) -> String
{
    concat!(stringify!(month), "/",
            stringify!(day), "/",
            stringify!(year)).to_string()
}
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 10

concat!接受文字并&'static str在编译时产生.你应该使用format!这个:

fn date(year: u8, month: u8, day: u8) -> String {
    format!("{}/{}/{}", month, day, year)
}
Run Code Online (Sandbox Code Playgroud)

  • @elleciel:实际上,在性能很重要的语言中,`concat!`是必不可少的:`&'static str`不需要内存分配,可以存储在只读内存中. (7认同)
  • @elleciel:`concat!`不是一个常用的功能,但它偶尔会在宏中有价值. (2认同)