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

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

主站蜘蛛池模板: 延庆县| 赤壁市| 兴宁市| 翁牛特旗| 师宗县| 龙胜| 当涂县| 中牟县| 黔江区| 保靖县| 原阳县| 吴忠市| 泸西县| 固安县| 婺源县| 马关县| 莱西市| 唐山市| 叶城县| 武义县| 桐城市| 马鞍山市| 鸡泽县| 鄂伦春自治旗| 榆林市| 和平区| 四子王旗| 蒲城县| 万盛区| 玛曲县| 绥芬河市| 黄冈市| 公安县| 新乡市| 高平市| 衡南县| 靖州| 怀来县| 健康| 沾益县| 马公市|