迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Rust 中字符串到 STR 的转换

作者:迹忆客 最近更新:2023/03/20 浏览次数:

Rust 是一种被设计为健壮和安全的语言。它还关注从系统编程到脚本编写的任何事物的性能。

Rust 中的 String 类型不是不可变的,但 String 类型确实具有创建和操作字符串的方法。本文将详细讨论 String&static str

Rust 中字符串的概念

String 是一个包含向量 Vec 的结构,它是一个可以扩展的 8 位无符号数组。

str 不同,String 拥有数据的所有权。因此,在将字符串的值分配给变量时,不必使用 & 或借用状态。

在初始化期间,String 的大小在编译时可能是已知的或未知的,但它可以扩展直到其长度达到其限制。

语法:

let my_string = String::from("Hello World");

Rust 中 str 的概念

在 Rust 中,str 是定义字符串文字的原始类型。它的信息在程序二进制文件的内存位置中分配。

字符串切片

切片是包含一系列项目并由语法表示的视图。切片没有所有权,但它们允许你参考项目出现的顺序。

因此,字符串切片是对字符串元素序列的引用。

let hello_string = String::from("hello world");

let hello_slice = &hello_string[4.8];

字母 "hello world" 存储在 hello_string 变量中。String 是一个可增长的数组,包含每个字符的位置或索引。

字符串文字

字符串文字是通过将文本括在双引号中来构造的。字符串文字有点不同。

它们是字符串切片,指的是作为可执行文件的一部分存储在只读内存中的预分配文本。换句话说,RAM 是随我们的软件一起提供的,并且不依赖于堆栈缓存。

Rust 中字符串到 str 的转换

字符串可能在代码的整个生命周期中都不存在,这就是 &'static str 生命周期的含义,因此,你无法从它们中获取 &'static str。只能从中获取由 String 的生命周期指定的切片。

示例代码:

fn main() {
    let hello_string = String::from("Hello world");
    print_infi(&hello_string);
    print!("Adil {}", hello_string);
}
fn print_infi(infi: &str) {
    println!("Steve {} ", infi);
}

输出:

Steve Hello world
Adil Hello world

运行示例

Rust 中 str 和 String 的区别

  String Str
1. 可变的 不可变
2. 在编译时,大小是未知的。 在编译时,大小是已知的。
3. 数据存储在堆中。 数据存储在应用程序二进制文件的内存位置。
4. 要分配单个 str 变量,请使用或引用。 要分配字符串变量值,你不需要使用或引用。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

用 Rust 读写文件

发布时间:2023/03/21 浏览次数:152 分类:编程语言

本教程演示了在不同版本的 Rust 中读取和写入文件的方式。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便