官术网_书友最值得收藏!

  • Learning Rust
  • Paul Johnson Vesa Kaihlavirta
  • 189字
  • 2021-07-02 23:07:16

Back to Strings

As we saw before perting onto the heap and stack, we can also define a string like this:

let mut myString = String::new(); 

The String:: tells the compiler that we are going to use the standard library, String, and we tell the program that we are going to create a mutable String and store a reference to it on the stack in something called myString.

The dynamic string can be created as either being empty, or with memory preallocated to it. For example, say we want to store the words You'll never walk alone (a total of 23 bytes), preallocating the space for them. This is how to do it:

let mut ynwa = String::with_capacity(23); 
ynwa.push_str("You'll never walk alone"); 

This is just a performance optimization and is not typically required, since Strings grow automatically when they need to. The following does roughly the same job:

let mut ynwa = "You'll never walk alone".to_owned(); 

Rust strings are not null-terminated, and consist entirely of valid Unicode. Therefore, they can contain null bytes and characters from any language, but they may require more bytes than they contain characters.

主站蜘蛛池模板: 灌阳县| 大安市| 响水县| 定兴县| 集安市| 嘉禾县| 巴青县| 黔江区| 上犹县| 依兰县| 白朗县| 邹平县| 冀州市| 古丈县| 威海市| 安新县| 崇左市| 漳平市| 贡觉县| 崇明县| 平和县| 娄烦县| 黄骅市| 乌审旗| 东光县| 涞水县| 沿河| 望谟县| 思南县| 长汀县| 双辽市| 彭阳县| 宝鸡市| 明水县| 奉化市| 聂拉木县| 金阳县| 新河县| 明溪县| 平陆县| 仁化县|