我有以下功能:
fn i_to_str(&self, i: int) -> &'a str {
return i.to_string().as_slice();
}
Run Code Online (Sandbox Code Playgroud)
error: borrowed value does not live long enough由于as_slice生命周期,此代码正在生成.有没有人知道是否有一些解决方法可以实现这一目标?
您无法从此函数返回切片,因为String返回的i.to_string()将在退出函数时被释放/删除,并且切片将引用释放的字符串.你应该返回一个String(i.to_string()在这种情况下直接返回),或者MaybeOwned如果方法由特征定义,并且一些实现可以合理地返回一个切片.