当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust str用法及代码示例


本文简要介绍rust语言中 Primitive Type str 的用法。

字符串切片。

另请参阅std::str 模块.

str 类型,也称为'string slice',是最原始的字符串类型。它通常以其借用的形式出现,&str。它也是字符串文字的类型,&'static str

字符串切片始终是有效的 UTF-8。

例子

字符串文字是字符串切片:

let hello = "Hello, world!";

// with an explicit type annotation
let hello: &'static str = "Hello, world!";

它们是'static,因为它们直接存储在最终二进制文件中,因此在'static 持续时间内有效。

表示

&str 由两个组件组成:指向某些字节的指针和长度。您可以使用 as_ptr len 方法查看这些:

use std::slice;
use std::str;

let story = "Once upon a time...";

let ptr = story.as_ptr();
let len = story.len();

// story has nineteen bytes
assert_eq!(19, len);

// We can re-build a str out of ptr and len. This is all unsafe because
// we are responsible for making sure the two components are valid:
let s = unsafe {
    // First, we build a &[u8]...
    let slice = slice::from_raw_parts(ptr, len);

    // ... and then convert that slice into a string slice
    str::from_utf8(slice)
};

assert_eq!(s, Ok(story));

注意:此示例显示了 &str 的内部结构。正常情况下,不应使用unsafe 来获取字符串切片。请改用as_str

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Primitive Type str。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。