如何在方法里返回可变借用?
💡
原文中文,约900字,阅读约需2分钟。
📝
内容提要
有一个全局的HashMap,封装了一个方法来获取值的可变借用,但是报了一个错误,猜想是因为MutexGuard持有了借用,修改后编译通过,但不确定是否安全,求教可能会发生什么问题,有没有更好的写法?
🎯
关键要点
-
全局 HashMap 使用了 Lazy 和 Mutex 封装。
-
方法 get_client_stream 用于获取 TcpStream 的可变借用。
-
编译时出现错误,提示返回对临时值的引用。
-
错误原因可能是 MutexGuard 持有的借用在 unsafe 块外失效。
-
参考 HashMap 源码后修改了方法,但仍然不确定安全性。
-
请求建议,询问可能出现的问题及更好的写法。
🏷️
标签
➡️