10. Slice slice.rs

//切片(Slice)是对数据值的部分引用。
//..y 等价于 0..y
//x.. 等价于位置 x 到数据结束
//.. 等价于位置 0 到结束

fn main() {

    //最简单、最常用的数据切片类型是字符串切片(String Slice)。
    let s = String::from("broadcast");
    let len = s.len();
    let part1 = &s[0..5];
    let part2 = &s[5..len];
    println!("{}={}+{}", s, part1, part2);

    //被切片引用的字符串禁止更改其值:
    // let mut s = String::from("runoob");
    // let slice = &s[0..3];
    // s.push_str("yes!"); // 错误
    // println!("slice = {}", slice);


    //在 Rust 中有两种常用的字符串类型:str 和 String。str 是 Rust 核心语言类型,就是本章一直在讲的字符串切片(String Slice),常常以引用的形式出现(&str)。
    //凡是用双引号包括的字符串常量整体的类型性质都是 &str:
    //let s = "hello";
    //这里的 s 就是一个 &str 类型的变量。
    //String 类型是 Rust 标准公共库提供的一种数据类型,它的功能更完善——它支持字符串的追加、清空等实用的操作。String 和 str 除了同样拥有一个字符开始位置属性和一个字符串长度属性以外还有一个容量(capacity)属性。
    //String 和 str 都支持切片,切片的结果是 &str 类型的数据。注意:切片结果必须是引用类型,但开发者必须自己明示这一点:

    //有一个快速的办法可以将 String 转换成 &str:
    let s1 = String::from("hello");
    let s2 = &s1[..];

}

 

Guess you like

Origin blog.csdn.net/liujiayu2/article/details/114387080