如何在 Rust 中创建固定大小的可变堆栈分配字符串?

How To create fixed size mutable stack allocated string in rust?

假设我知道一个变量的大小,它应该是堆栈分配的并且是字符串类型可变的 那么我如何创建一个可变但大小固定的字符串类型变量,从而分配堆栈内存

使用 String 会给我堆分配动态长度变量

使用 str 意味着我应该在编译时本身给出值

使用字节数组可以做到,但我会失去与字符串类型相关的功能

可以用 std::str::from_utf8_mut&mut [u8] 制作 &mut str。示例:

fn main() {
    // Just an example of creating byte array with valid UTF-8 contents
    let mut bytes = ['a' as u8; 2];
    // Type annotation is not necessary, added for clarity
    let string: &mut str = std::str::from_utf8_mut(&mut bytes).unwrap();
    // Now we can call methods on `string` which require `&mut str`
    string[0..1].make_ascii_uppercase();
    // ...and the result is observable
    println!("{}", string); // prints "Aa"
}

Playground