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