as_slice产生"不够活跃"错误

时间:2014-10-18 02:40:06

标签: rust

我有以下功能:

    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。有没有人知道是否有一些解决方法可以实现这一目标?

1 个答案:

答案 0 :(得分:5)

您无法从此函数返回切片,因为退出函数时将释放/删除String返回的i.to_string(),并且切片将引用释放的字符串。您应该返回String而不是(在这种情况下直接返回i.to_string()),如果方法由特征定义,则返回MaybeOwned,并且某些实现可以合理地返回切片。