阅读 599

rust 基本类型 char, str 和 String

字符串类型

doc.rust-lang.org/std/index.h… 学习中不要忘了 rust 标准

Rust的文本类型主要包含6种:

  • characterrust类型为:char

  • stringrust类型为:&str

  • raw string

  • byte

  • byte string

  • raw byte string

rust 标准库中的 string

  • char 用于存放单个unicode字符,占用4字节空间(32bit)。

  • std::str 字符串切片类型(字符串字面量)

  • std::string::String

标准库 std::char

use std::char;  println!("{}", char::from_u32(0x2764).unwrap()); // ❤ 复制代码

标准库 std::str

str 需与 & 使用 &str 表示切片类型。基本数据类型, 存放于栈中

let a: &str = "this is std::str"; // 切片类型 let b = [12, 23]; println!("{}-{:?}", a, b); 复制代码

str 切片类型不能直接访问(动态大小类型),必须使用 & 表示引用字符串。下面是一个切片生成另外一个切片

let s: &str = "this slice type string" let d: &str = &s[..5] 复制代码

切片字符串的特点:不可变,只能通过应用的方式切片引用部分来使用。当然,类型转换我们回放在后面涉及到。

标准库 std::string::String

String 类型,相对于 str 切片类型就比较灵活。String 可以直接使用,不用使用 use 关键字导入。引用数据类型,存放于堆中:

new 方法创建一个空字符

let empty_str = String::new() 复制代码

from 方创建一个字符串

const str: String = String::from("this is flex string"); 复制代码

str 与 String 类型之间的相互转换

String -> str 是廉价的

  • 解除引用: 为 String 使用一个 Deref 方法

  • 使用 + 连字符

str -> String 并不是廉价的

  • 重新分配


作者:逍遥_乔治
链接:https://juejin.cn/post/7023779371261362184


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐