本文簡要介紹rust語言中 Function std::str::from_utf8
的用法。
用法
pub fn from_utf8(v: &[u8]) -> Result<&str, Utf8Error>
將字節切片轉換為字符串切片。
字符串切片 ( &str
) 由字節 ( u8
) 組成,字節切片 ( &[u8]
) 由字節組成,因此此函數在兩者之間進行轉換。但是,並非所有字節切片都是有效的字符串切片: &str
要求它是有效的 UTF-8。 from_utf8()
檢查以確保字節是有效的 UTF-8,然後進行轉換。
如果您確定字節切片是有效的 UTF-8,並且您不想產生有效性檢查的開銷,則此函數有一個不安全版本 from_utf8_unchecked
,它具有相同的行為但跳過查看。
如果您需要 String
而不是 &str
,請考慮 String::from_utf8
。
因為您可以 stack-allocate 和 [u8; N]
,並且可以從中獲取 &[u8]
,所以此函數是獲得 stack-allocated 字符串的一種方法。下麵的示例部分中有一個示例。
錯誤
如果切片不是 UTF-8,則返回 Err
,並說明為什麽提供的切片不是 UTF-8。
例子
基本用法:
use std::str;
// some bytes, in a vector
let sparkle_heart = vec![240, 159, 146, 150];
// We know these bytes are valid, so just use `unwrap()`.
let sparkle_heart = str::from_utf8(&sparkle_heart).unwrap();
assert_eq!("💖", sparkle_heart);
不正確的字節:
use std::str;
// some invalid bytes, in a vector
let sparkle_heart = vec![0, 159, 146, 150];
assert!(str::from_utf8(&sparkle_heart).is_err());
有關可以返回的錯誤類型的更多詳細信息,請參閱 Utf8Error
的文檔。
一個“stack allocated string”:
use std::str;
// some bytes, in a stack-allocated array
let sparkle_heart = [240, 159, 146, 150];
// We know these bytes are valid, so just use `unwrap()`.
let sparkle_heart = str::from_utf8(&sparkle_heart).unwrap();
assert_eq!("💖", sparkle_heart);
相關用法
- Rust from_utf8_unchecked用法及代碼示例
- Rust from_utf8用法及代碼示例
- Rust from_utf8_mut用法及代碼示例
- Rust from_utf8_unchecked_mut用法及代碼示例
- Rust from_u32_unchecked用法及代碼示例
- Rust from_u32用法及代碼示例
- Rust from_fn用法及代碼示例
- Rust from_digit用法及代碼示例
- Rust from_raw_parts用法及代碼示例
- Rust from_boxed_utf8_unchecked用法及代碼示例
- Rust f32.exp用法及代碼示例
- Rust f32.hypot用法及代碼示例
- Rust f32.minimum用法及代碼示例
- Rust f64.signum用法及代碼示例
- Rust f64.sqrt用法及代碼示例
- Rust f32.sqrt用法及代碼示例
- Rust f32.abs_sub用法及代碼示例
- Rust f64.is_finite用法及代碼示例
- Rust f32.cos用法及代碼示例
- Rust f32.is_sign_positive用法及代碼示例
- Rust f32.log10用法及代碼示例
- Rust f64.round用法及代碼示例
- Rust format_args用法及代碼示例
- Rust f32.total_cmp用法及代碼示例
- Rust f64.div_euclid用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::str::from_utf8。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。