来自临时 u8 切片的 Rust 字符串
Rust String from temporary u8 slice
我想运行一个命令并捕获它的输出。
let result = match Command::new(thing.command).output() {
Ok(out) => String::from_utf8_lossy(&out.stdout),
Err(_) => ....,
};
我收到 &out.stdout
的错误 borrowed value does not live long enough
。我理解这个问题,但我如何创建 u8 切片的副本并将完整所有权转移到新创建的字符串中?
from_utf8_lossy
的 return 值是 Cow
:
pub fn from_utf8_lossy(v: &[u8]) -> Cow<'_, str>
如果您想创建副本并转让所有权,Cow
的 into_owned()
是专门为此设计的:
pub fn into_owned(self) -> <B as ToOwned>::Owned
Extracts the owned data.
Clones the data if it is not already owned.
我想运行一个命令并捕获它的输出。
let result = match Command::new(thing.command).output() {
Ok(out) => String::from_utf8_lossy(&out.stdout),
Err(_) => ....,
};
我收到 &out.stdout
的错误 borrowed value does not live long enough
。我理解这个问题,但我如何创建 u8 切片的副本并将完整所有权转移到新创建的字符串中?
from_utf8_lossy
的 return 值是 Cow
:
pub fn from_utf8_lossy(v: &[u8]) -> Cow<'_, str>
如果您想创建副本并转让所有权,Cow
的 into_owned()
是专门为此设计的:
pub fn into_owned(self) -> <B as ToOwned>::Owned
Extracts the owned data.
Clones the data if it is not already owned.