苏州集团网站制作开发,文件大小 wordpress,昌吉市住房和城乡建设局网站,营销推广方案设计一、切片是什么#xff0c;怎么用
1、切片是什么
切片并不是 Rust 独有的概念#xff0c;在 Go 语言中就非常流行#xff0c;它允许你引用集合中部分连续的元素序列#xff0c;而不是引用整个集合。
对于字符串而言#xff0c;切片就是对 String 类型中某一部分的引用怎么用
1、切片是什么
切片并不是 Rust 独有的概念在 Go 语言中就非常流行它允许你引用集合中部分连续的元素序列而不是引用整个集合。
对于字符串而言切片就是对 String 类型中某一部分的引用它看起来像这样记得是引用
let s String::from(hello world);let hello s[0..5];//区间是左闭右开
let world s[6..11];用图来看是这样 但是需要注意的是切片取索引下标的时候要将索引放置在正确的位置上比如 // 修复代码中的错误
fn main() {let s String::from(中国人);let a s[0..2];println!({},a);}Compiling world_hello v0.1.0 (/Users/guilinhuang/Desktop/RustProject/world_hello)Finished release [optimized] target(s) in 0.21sRunning target/release/world_hello
thread main panicked at src/main.rs:5:13:
byte index 2 is not a char boundary; it is inside 中 (bytes 0..3) of 中国人这是因为在字符串类型中每个汉字占用三个字节因此没有落在边界处也就是连 中 字都取不完整此时程序会直接崩溃退出如果改成 s[0…3]则可以正常通过编译。 因此当你需要对字符串做切片索引操作时需要格外小心这一点。 如何正确便利这种UTF-8字符串给几个方法
for c in 中国人.chars() {println!({}, c);
}在Rust中如果是字符类型一个字符占4个字节要与字符串区分 fn main() {let arr: [char; 3] [中, 国, 人];let slice arr[..2];assert!(std::mem::size_of_val(slice) 8);
}