微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rust:返回引用当前函数拥有的数据的值

如何解决Rust:返回引用当前函数拥有的数据的值

我有一小段代码。为什么第二个编译失败?

| makeresults | eval _raw="Received App information from Source and processed in ms: 467"
| rex field=_raw "processed in ms:\s+(?<response_time>\d+)"
| stats avg(response_time)

解决方法

编译器会准确地告诉您原因(这就是为什么阅读和发布编译错误很有用:

org.hibernate.jpa.HibernateEntityManager

在映射中不存在输入 8 | data: text.data.chars().map(|c| self.mapping.get(&c).unwrap_or(&c)).collect() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--^ | | | | | `c` is borrowed here | returns a value referencing data owned by the current function 的情况下,它返回对局部变量的引用,这是不允许的,因为...引用将被留下 dangling,一些生锈不允许。

解决方案与“工作正常”版本中使用的完全相同:取消引用回调的结果,这会将 char Copy 转化为 &char,它拥有和因此可以在没有生命周期问题的情况下返回:

char

或者,您可以 Text { data: text.data.chars().map(|c| *self.mapping.get(&c).unwrap_or(&c)).collect() } copied 的结果产生 HashMap::get,然后将 Option<char> 变为 unwrap_or,从而解决问题同样的原因:

char

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。