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~

相关推荐
xyq2024几秒前
Matplotlib 绘图线
开发语言
m0_694845574 分钟前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
JustDI-CM9 分钟前
AI学习笔记-提示词工程
人工智能·笔记·学习
春日见9 分钟前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
悟纤10 分钟前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
爱写bug的野原新之助10 分钟前
加密摘要算法MD5、SHA、HMAC:学习笔记
笔记·学习
C++ 老炮儿的技术栈12 分钟前
VS2015 + Qt 实现图形化Hello World(详细步骤)
c语言·开发语言·c++·windows·qt
派葛穆19 分钟前
Python-批量安装依赖
开发语言·python
MSTcheng.31 分钟前
【C++】C++11新特性(二)
java·开发语言·c++·c++11
晓131334 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言