在 const 函数中插入字符串

Red*_* LP 5 compile-time-constant string-interpolation rust

我正在尝试制作一个与此类似的功能

pub const fn insert(num1:i32, num2:i32) -> &'static str { 
    formatcp!("n1:{}, n2:{}" , num1, num2) 
} 

Run Code Online (Sandbox Code Playgroud)

但 num1/num2 不是 const。我认为这作为宏是可能的,但我在宏方面没有经验。

小智 0

有帮助吗?

macro_rules! insert {
    ($n1:expr, $n2:expr) => {
        concat!("n1: ", $n1, " , n2: ", $n2)
    };
}

const TEST_1: &str = insert!(1, 2);
const TEST_2: &str = insert!(2, 3);

fn main() {
    println!("{}", TEST_1);
    println!("{}", TEST_2);
}
Run Code Online (Sandbox Code Playgroud)