本文简要介绍rust语言中 Primitive Type 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 str.make_ascii_uppercase用法及代码示例
- Rust str.strip_suffix用法及代码示例
- Rust str.trim_left用法及代码示例
- Rust str.char_indices用法及代码示例
- Rust str.to_ascii_lowercase用法及代码示例
- Rust str.trim用法及代码示例
- Rust stringify用法及代码示例
- Rust str.split_terminator用法及代码示例
- Rust str.to_uppercase用法及代码示例
- Rust str.starts_with用法及代码示例
- Rust str.escape_default用法及代码示例
- Rust str.rmatches用法及代码示例
- Rust str.trim_right用法及代码示例
- Rust str.rsplit_terminator用法及代码示例
- Rust str.rsplit_once用法及代码示例
- Rust str.split_once用法及代码示例
- Rust str.len用法及代码示例
- Rust str.chars用法及代码示例
- Rust str.trim_left_matches用法及代码示例
- Rust str.rsplit用法及代码示例
- Rust str.eq_ignore_ascii_case用法及代码示例
- Rust str.rfind用法及代码示例
- Rust str.is_ascii用法及代码示例
- Rust str.find用法及代码示例
- Rust str.trim_right_matches用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Primitive Type str。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。