gpt4 book ai didi

rust - 我可以创建类型为 `Option<&str>` 的绑定(bind)吗?

转载 作者:行者123 更新时间:2023-11-29 08:23:54 25 4
gpt4 key购买 nike

我可以创建类型为 Option<&str> 的绑定(bind)吗? ?微小的非工作示例:

fn main() {
let a: Option<&str> = {
Some(&{"a".to_string() + "b"}) // Let's say the string is not static
};
}

这不起作用,我需要添加生命周期(或使用不带 Option<String>&)。那么我如何在这里声明生命周期呢?我知道我可以返回 Option<String>一切都会好起来的,但这不是我想要的——我正在尝试了解一些 Rust 机制。我可以在一个函数中声明生命周期,但不知道如何在一个简单的 let 中做到这一点捆绑。

最佳答案

绝对:

fn main() {
let s = "a".to_string() + "b";
let a: Option<&str> = Some(&s);
}

问题不在于创建 Option<&str> ,那是因为您正在尝试引用超出范围的内容。这是原始代码的(部分)错误消息:

error: borrowed value does not live long enough
|> Some(&{"a".to_string() + "b"})
|> ^^^^^^^^^^^^^^^^^^^^^^^ does not live long enough

参见 Return local String as a slice (&str)了解更多信息。

关于rust - 我可以创建类型为 `Option<&str>` 的绑定(bind)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38446217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com