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

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

主站蜘蛛池模板: 汉川市| 武功县| 长岭县| 新建县| 秦皇岛市| 衡东县| 新干县| 重庆市| 普陀区| 嘉义县| 鄂伦春自治旗| 永福县| 通河县| 昂仁县| 平果县| 滨海县| 大荔县| 田东县| 自治县| 醴陵市| 怀安县| 桦甸市| 微博| 繁昌县| 温泉县| 基隆市| 湘潭县| 莆田市| 高安市| 泸溪县| 繁昌县| 刚察县| 泾阳县| 平顺县| 汉源县| 龙州县| 通河县| 凤庆县| 文水县| 鄂尔多斯市| 黔西|