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~

相关推荐
我带你来这儿就是为了告诉你我2 分钟前
C++23新特性前瞻
开发语言·c++·算法
adore.96814 分钟前
3.20 复试学习
学习
jinanwuhuaguo17 分钟前
OpenClaw安全使用实践全景深度指南:从“裸奔龙虾”到“可信数字堡垒”的体系化构建
开发语言·php
2501_9083298517 分钟前
C++安全编程指南
开发语言·c++·算法
计算机安禾19 分钟前
【C语言程序设计】第39篇:预处理器与宏定义
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
巧妹儿20 分钟前
Python 配置管理封神技:pydantic_settings+@lru_cache,支持优先级,安全又高效,杜绝重复加载!
开发语言·python·ai·配置管理
独隅24 分钟前
Python AI 全面使用指南:从数据基石到智能决策
开发语言·人工智能·python
m0_5698814730 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
weixin_4219226933 分钟前
C++与边缘计算
开发语言·c++·算法
2401_8319207435 分钟前
C++编译期数组操作
开发语言·c++·算法