【已解决】(感谢e神)《仍有讨论的地方》(规则问题、无法编译、限制)可变struct中的闭包参数使用struct本身、挑战可变借用多次无法编译
原文中文,约1200字,阅读约需3分钟。
📝
内容提要
这篇文章讨论了如何将Rust函数绑定到解释器中使用。作者想要让从cx中获取的target_func作为上下文传入,但是无法实现。文章提供了相关代码,并指出编译错误。
❓
Q&A
如何将Rust函数绑定到解释器中使用?
可以通过定义一个结构体和枚举来实现,将Rust函数作为闭包存储在HashMap中。
在Rust中如何定义一个包含闭包的结构体?
可以定义一个结构体,例如Content,包含一个HashMap,HashMap的值为EnvFunction枚举,其中存储闭包。
为什么在调用target_func时会出现编译错误?
编译错误可能是由于target_func的类型不匹配或闭包的借用规则未遵循导致的。
init_built_in_functions函数的作用是什么?
该函数用于初始化内置函数,并将其插入到Content结构体的map_env_fun中。
如何在Rust中使用HashMap存储函数?
可以使用HashMap<String, EnvFunction>来存储函数,其中EnvFunction是一个枚举,包含闭包类型。
在Rust中如何处理闭包的借用问题?
需要确保闭包的借用符合Rust的所有权和借用规则,避免多次可变借用导致的编译错误。