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~

相关推荐
Hillain几秒前
软件设计师设计模式
java·开发语言·经验分享·笔记·算法·设计模式·软考
拂拉氏3 分钟前
【项目分享-知识讲解】 C++标准库 list类的模拟实现
开发语言·c++·list·封装·stl标准库
十月的皮皮3 分钟前
C语言学习笔记20260603-打印整数(32位)二进制的奇数位和偶数位(2种方法)
c语言·笔记·学习
码云骑士3 分钟前
【2.Java基础】Java常量与变量-从基本类型到类型转换全面掌握
java·开发语言
爱和冰阔落5 分钟前
Ollama 本地大模型部署实战:从安装到 RAG 知识库完整指南
开发语言·大模型·php·ollama
泡^泡5 分钟前
Python数据类型与运算符
开发语言·windows·python
不爱编程的小陈6 分钟前
Go语言GMP调度模型深度解析:高并发背后的精妙设计
开发语言·后端·golang
李子琪。7 分钟前
谷歌“三剑客”与云计算基石:GFS、MapReduce、Bigtable 全栈解析及私有云落地实践
开发语言·编辑器·perl
xufengzhu1 小时前
Python库PyMySQL的使用指南
开发语言·python·pip
z落落8 小时前
C# 泛型方法(原理、类型推断、多泛型参数)+泛型效率(普通类型 VS Object装箱 VS 泛型)
开发语言·c#