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~

相关推荐
lly2024067 分钟前
HTML 元素:构建网页的基础
开发语言
低调小一8 分钟前
LRU缓存科普与实现(Kotlin 与 Swift)
开发语言·缓存·kotlin
爱好学习的青年人8 分钟前
一文详解Go语言字符串
开发语言·后端·golang
总有刁民想爱朕ha21 分钟前
AI大模型学习(17)python-flask AI大模型和图片处理工具的从一张图到多平台适配的简单方法
人工智能·python·学习·电商图片处理
浅川.2526 分钟前
xtuoj string
开发语言·c++·算法
望获linux29 分钟前
【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
大数据·linux·服务器·开发语言·网络·操作系统
ServBay1 小时前
Rust 1.89更新,有哪些值得关注的新功能
后端·rust
加油吧zkf1 小时前
Python入门:从零开始的完整学习指南
开发语言·前端·python
Larry_Yanan1 小时前
QML学习笔记(三十一)QML的Flow定位器
java·前端·javascript·笔记·qt·学习·ui
与己斗其乐无穷1 小时前
C++学习记录(17)红黑树简单实现map和set
学习