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

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.

主站蜘蛛池模板: 精河县| 灵川县| 克东县| 姜堰市| 彰化市| 淮阳县| 米林县| 慈利县| 湛江市| 寻乌县| 车致| 凯里市| 浦江县| 开远市| 鹤山市| 岐山县| 白山市| 郁南县| 彩票| 潜江市| 高邑县| 通许县| 周至县| 山丹县| 阳泉市| 水城县| 乌苏市| 沧州市| 蕲春县| 翁源县| 大理市| 贞丰县| 柳江县| 鹤壁市| 新昌县| 红桥区| 苏尼特左旗| 杭锦旗| 双牌县| 宜良县| 德清县|