當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。