我发现在变量的生命周期作用域方面,
然而,这会抛出以下错误:
文档没有详细说明如何将生命周期持久化到超出其初始化调用范围的位置。我看过 这里 和 这里 的示例。这两个示例都意味着要么丢弃值,要么转换为
Option
有些令人困惑。我一直在尝试从 Option
的 Some
中提取基础值,就像下面这样的匹配模式:let filename = match canonicalize(&PathBuf::from(filename)).unwrap().to_str() {
Some(path) => path,
_ => "",
};
// Later, I validate the string content
if filename.is_empty() {
do_something();
}
然而,这会抛出以下错误:
temporary value dropped while borrowed: borrow later used here
文档没有详细说明如何将生命周期持久化到超出其初始化调用范围的位置。我看过 这里 和 这里 的示例。这两个示例都意味着要么丢弃值,要么转换为
Option
,而我都不想要。我只想在函数成功后获取底层的 &str
值。