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

  • 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.

主站蜘蛛池模板: 彩票| 广水市| 福建省| 天柱县| 桂阳县| 太谷县| 京山县| 赞皇县| 阳谷县| 分宜县| 罗源县| 东乡族自治县| 临武县| 西乌| 安康市| 武定县| 普格县| 汤原县| 松阳县| 民和| 香河县| 花莲市| 沂南县| 石景山区| 三明市| 威信县| 抚顺市| 萝北县| 确山县| 衡水市| 桦川县| 昌乐县| 九江市| 筠连县| 临泉县| 蓬安县| 洪湖市| 辽阳市| 嘉兴市| 通许县| 博客|