Rust 从基础到实践(5)
2019-03-11 本文已影响10人
zidea
字符串在 rust 是一个对象特殊类型,所以单拿出来进行分享。可以将字符串了解为char 的集合。
字符串类型由 Rust 的标准库提供,而不是编码为核心语言,是一种可增长、可变、拥有的、UTF-8 编码的字符串类型.
字符串创建
let mut s = String::new();
let data = "initial contents";
let s = data.to_string();
- 创建一个空的字符串(String)
- 然后将数据加载到字符串中
let hello = String::from("Hello");
println!("{}",hello);
也可以使用 String::from(数据) 来直接创建字符串。
字符串的追加内容
let mut hello = String::from("Hello");
println!("{}",hello);
hello.push('W');
println!("Length: {}", hello.len() )
字符串可以理解为字符集合,我们通过 push 为字符串添加字符,但是不可以使用 push 添加字符串。不然就会抛出下面的异常
let mut hello = String::from("Hello");
println!("{}",hello);
hello.push('Wo');
println!("Length: {}", hello.len() )
//get length
error: character literal may only contain one codepoint: 'Wo'
我们可以使yong push_str 来为字符串添加字符串
let mut s1 = String::from("foo");
let s2 = "bar";
s1.push_str(s2);
println!("s2 is {}", s2);
字符串重新赋值
hello.push_str("orld!");
如果要字符串重新赋值时候,如果将字符串 hello 修改可变类型,需要添加 mut
let mut hello = "Hello";
字符串的合并
let s1 = String::from("Hello, ");
let s2 = String::from("world!");
let s3 = s1 + &s2; //
字符串的长度
assert_eq!(3, s.len());
屏幕快照 2019-03-09 下午3.53.06.png