Rust的char型别是最基本的字母型别,用单引号包起来
例
let a = 'b';
Rust的字串分两种
严格来讲Rust在核心语言中只有一个字串型别,哪就是切片字串(&str)是不可变的(stack)
String则是Rust标准函式库提供的型别,String是可变(Heap)
例
// &str型别
let str_var = "字串";
// String型别
let string_var = str_var.to_string();
// String型别
let string_var = String::from("字串");
索引字串切片
因为字串是使用 UTF-8 编码,每个字符可能有多个位元组所以用字串索引会容易出现错误
let str_var = "安安";
println!("{}", &str_var[0..1]);
会出现错误
thread 'main' panicked at 'byte index 1 is not a char boundary; it is inside '安' (bytes 0..3) of `安安`'
比较好得做法透过as_bytes或是chars方法来取直
let str_var = "安安你好啊";
for b in str_var.as_bytes() {
print!("{}, ", b);
}
for c in str_var.chars() {
print!("{}, ", c);
}
输出
229, 174, 137, 229, 174, 137, 228, 189, 160, 229, 165, 189, 229, 149, 138,
安, 安, 你, 好, 啊,
字串相加,这边会使用到&借用,後面会讲解
let string1_var = String::from("安安");
let string2_var = String::from("你好啊");
println!("{}", string1_var + &string2_var);
输出
安安你好啊
Rust没有提供型别判断的方法,如果想要知道变数是什麽型别可以利用编译时的错来查看
例
// char型别
let char_var = 'c';
char_var.not_found;
出现错误
`char` is a primitive type and therefore doesn't have fields
// &str型别
let str_var = "str";
str_var.not_found;
出现错误
no field `not_found` on type `&str`
接下来讲讲新增 部分... Controller public ActionResult Creat...
实作完可以侦测人脸的哈尔特徵後,在将所有的训练资料不需要的背景利用人脸侦测的框给剪裁掉。以下图为例 ...
https://jerry-the-potato.github.io/ChapterX-demo/ ...
我们必须记忆一个主体的状态,以便系统後续进行判断、操作或其他使用,为此我们也在 Day 03 厘清「...
为了提升 WordPress 站台安全性,我安装了防火墙及防毒外挂 Wordfence,此外挂提供了...