&'a str { return i.to_string().as_slice(); } 由-6ren">
gpt4 book ai didi

rust - as_slice 产生 "not live enough"错误

转载 作者:行者123 更新时间:2023-11-29 08:04:20 27 4
gpt4 key购买 nike

我有以下功能:

    fn i_to_str(&self, i: int) -> &'a str {
return i.to_string().as_slice();
}

由于 as_slice 的生命周期,这段代码产生了错误:借用的值没有足够长的生命周期。有谁知道是否有一些解决方法可以实现这一点?

最佳答案

你不能从这个函数返回一个切片,因为 i.to_string() 返回的 String 在退出函数时会被释放/丢弃,切片会引用释放的字符串。您应该返回一个 String(在这种情况下直接返回 i.to_string()),或者一个 MaybeOwned如果该方法是由特征定义的,并且某些实现可以合理地返回一个切片。

关于rust - as_slice 产生 "not live enough"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26435791/

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