Rust中的多行整数文本

Rust中的多行整数文本,rust,Rust,我有以下整数文本: let centre: u64 = 0b00000000_00000000_00111100_00111100_00111100_00111100_00000000_00000000; 它代表一个国际象棋棋盘,因此我认为将其格式化为类似以下内容会更好: let centre: u64 = 0b 00000000 00000000 00111100

我有以下整数文本:

let centre: u64 = 0b00000000_00000000_00111100_00111100_00111100_00111100_00000000_00000000;
它代表一个国际象棋棋盘,因此我认为将其格式化为类似以下内容会更好:

let centre: u64 = 0b
                  00000000
                  00000000
                  00111100
                  00111100
                  00111100
                  00111100
                  00000000
                  00000000;

但是,上面的示例没有编译,因为换行符在我的文本中被解释为空白。有什么办法可以实现这一点吗?

没有办法将令牌与标准库中的宏(从Rust 1.22开始)连接成一个新的令牌(就像在C预处理器中使用
##
一样)

但是,我提出了以下宏。它在每一行上重复
0b
,但至少您可以从0和1中清楚地看到模式。移位和OR在编译时进行计算,因此与普通文本相比,此解决方案没有运行时损失

macro_rules! chessboard {
    ($line0:tt $line1:tt $line2:tt $line3:tt $line4:tt $line5:tt $line6:tt $line7:tt) => {
        ($line0 << 56) |
        ($line1 << 48) |
        ($line2 << 40) |
        ($line3 << 32) |
        ($line4 << 24) |
        ($line5 << 16) |
        ($line6 <<  8) |
        ($line7 <<  0)
    }
}

fn main() {
    let centre: u64 = chessboard!(
        0b_00000000
        0b_00000000
        0b_00111100
        0b_00111100
        0b_00111100
        0b_00111100
        0b_00000000
        0b_00000000);
    println!("{:#b}", centre);
}
macro\u规则!棋盘{
($line0:tt$line1:tt$line2:tt$line3:tt$line4:tt$line5:tt$line6:tt$line7:tt)=>{

($line0显然不是。我的错。我认为目前不可能这样做;但是,可以用更直接的方式表示棋盘:)。闻起来你想要宏/半严肃