RUST持续学习 一点borrow问题的心得记录

写RUST的时候,我经常遇到一个报错 说哪已经mut borrow了 不能再次mut borrow

经过分析实验

我感觉最合理的做法是设计的时候就要给该对象够多的API

lightsys需要装载各种light,Point Spot

这里要么把lighsys传递给对应的light进行操作,要么把point传递给lightsys进行操作

经过我的BUG体验之后,这类似的问题我算是摸清了

要尽量给这个主题多一些API

像这个lightsys

rust 复制代码
struct LightSys{
	p: PointLight,
	s: SpotLight
}
impl LightSys {
pub fn setPointLight(&mut self, radius? density? color?...)
pub fn setSpotLight(&mut self, radius? density? color?...)

这样就在外面直接light_sys.setXXXX setYYYY setZZZZ就避免了把这个light_sys传来传去

这个例子可能不太合理,但是主要就是记一下这个事情,理解这个问题,尽量避开传来传去,就能避免多次mut borrow~

相关推荐
Lucas555555551 分钟前
现代C++四十不惑:AI时代系统软件的基石与新征程
开发语言·c++·人工智能
源代码•宸2 分钟前
goframe框架签到系统项目(BITFIELD 命令详解、Redis Key 设计、goframe 框架教程、安装MySQL)
开发语言·数据库·经验分享·redis·后端·mysql·golang
jump_jump4 分钟前
手写一个 Askama 模板压缩工具
前端·性能优化·rust
qcwl664 分钟前
操作系统 真象还原 学习笔记#13
笔记·学习
车载测试工程师8 分钟前
CAPL学习-CAN相关函数-概述
网络协议·学习·capl·canoe
吃喝不愁霸王餐APP开发者18 分钟前
Java后端系统对接第三方外卖API时的幂等性设计与重试策略实践
java·开发语言
roman_日积跬步-终至千里19 分钟前
【人工智能导论】08-学习-如何让计算机理解序列数据——用RNN/LSTM建模时序依赖,用文本嵌入表示序列元素
人工智能·rnn·学习
写代码的【黑咖啡】23 分钟前
深入理解 Python 中的模块(Module)
开发语言·python
m0_6896182825 分钟前
30 分钟打印!多材料3D打印软机器人内置驱动 + 自主避障
笔记·学习·机器人
wuk9981 小时前
matlab为地图进行四色着色
开发语言·matlab