在铁锈中:
println!("{}", mem::size_of_val(&String::from("1234567890")));
印刷24。
我知道String可能会存储额外的数据,例如字符串的长度,但是 24 个字节从哪里来?
use std::mem;
fn main() {
    println!("{}", mem::size_of_val(&String::from("1234567890")));
    return ()
}
如果相关的话,我的架构是arm64。
小智 9
Rust 中的AString大小为 24 字节,因为它由指向堆的指针(在 64 位系统上为 8 字节)、8 字节长度和 8 字节容量组成。
AString不会内联存储数据,因为它将值的字节存储在堆上。如果您想要底层字节的长度,请使用String::len。