gpt4 book ai didi

返回 Vec<&str> 时字符串的生命周期

转载 作者:行者123 更新时间:2023-12-03 00:02:43 26 4
gpt4 key购买 nike

简单代码:

fn foo() -> Vec<&'static str> {

let mut vec = Vec::new();
let mut string = String::new();

// doing something with string...

vec.push(string.as_str());

return vector; // error here: string doesn't live long enough
}

我遇到问题,需要用字符串处理并将其返回到 Vec作为海峡问题是绑定(bind)字符串的生命周期不够长,因为它在 foo 之后超出了范围。我很困惑,我真的不知道如何解决这个问题。

最佳答案

A &'static str 是一个字符串文字,例如let a : &'static str = "hello world".它存在于应用程序的整个生命周期中。

如果您要创建一个新的字符串,那么该字符串就不是静态的!

简单地返回一个String向量。

fn foo() -> Vec<String> {

let mut vec = Vec::new();
let mut string = String::new();

// doing something with string...

vec.push(string);

return vec;
}

fn main() {
foo();
}

关于返回 Vec<&str> 时字符串的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60210478/

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