如何在AsRef上使用生命周期

时间:2015-08-18 03:06:27

标签: rust lifetime

我很难理解如何使用下面的代码使用生命周期。我知道显式生命周期对于帮助编译器理解何时可以保存/释放数据是必要的,但在这种特殊情况下,MapObservable会生成一个匿名字符串,而我并不确定如何解决此问题。

url.serialize()

1 个答案:

答案 0 :(得分:5)

AsRef州的文档:

  

廉价的参考转换。

但是,您的代码不是参考引用转换,而且它不是"便宜" (对于"廉价"的某些解释)。

您没有告诉我们RequestUri::AbsoluteUriurl.serialize来自哪个库,所以我只能猜测它会返回String。调用serialize的人可以取得字符串的所有权,也可以将其删除。

在您的示例中,您点击String并在其上调用as_ref,这会返回&str。但是,没有任何东西拥有String 。一旦块结束,String将被删除,任何引用都将无效。

您使用您提供的信息向我们提出的问题无法解决。