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

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

主站蜘蛛池模板: 寻乌县| 乐陵市| 彩票| 大港区| 齐河县| 西安市| 葫芦岛市| 永福县| 赫章县| 奇台县| 临猗县| 襄汾县| 信阳市| 景洪市| 恩施市| 贞丰县| 四子王旗| 沂水县| 安图县| 灵山县| 常熟市| 高尔夫| 河间市| 革吉县| 夏河县| 吉隆县| 福清市| 佛冈县| 平阳县| 松溪县| 林甸县| 监利县| 扬州市| 玛多县| 云梦县| 中超| 五指山市| 乐亭县| 谢通门县| 太仆寺旗| 建宁县|