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~

相关推荐
极地星光4 分钟前
Qt/C++应用:防御性编程完全指南
开发语言·c++·qt
Love__Tay22 分钟前
【Python小练习】3D散点图
开发语言·python·3d
iCxhust1 小时前
一款复古的Intel8088单板机制作
开发语言·单片机·嵌入式硬件
CoderIsArt1 小时前
C# WPF常用调试工具汇总
开发语言·c#·wpf
晨曦5432102 小时前
针对医学大数据的 Python 爬虫实践指南
开发语言·爬虫·python
小白学大数据2 小时前
Python爬虫:多线程环境下503错误的并发控制优化
开发语言·爬虫·python
卖猪肉的痴汉2 小时前
5.2 Qt Creator 使用FFmpeg库
开发语言·qt·ffmpeg
知青春之宝贵2 小时前
BEV感知-课程学习详细记录(自动驾驶之心课程)
学习
HeartException2 小时前
Spring Boot + MyBatis Plus + SpringAI + Vue 毕设项目开发全解析(源码)
人工智能·spring boot·学习
teeeeeeemo3 小时前
Number.toFixed() 与 Math.round() 深度对比解析
开发语言·前端·javascript·笔记