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~

相关推荐
xianwu5438 分钟前
反向代理模块。开发
linux·开发语言·网络·c++·git
Kobebryant-Manba9 分钟前
kafka基本概念
分布式·学习·kafka
xiaocaibao77714 分钟前
Java语言的网络编程
开发语言·后端·golang
地球空间-技术小鱼28 分钟前
YUM(Yellowdog Updater, Modified)和DNF(Dandified YUM)简介
linux·运维·服务器·笔记·学习
木向32 分钟前
leetcode22:括号问题
开发语言·c++·leetcode
comli_cn34 分钟前
使用清华源安装python包
开发语言·python
筑基.40 分钟前
basic_ios及其衍生库(附 GCC libstdc++源代码)
开发语言·c++
小码的头发丝、1 小时前
Java进阶学习笔记|面向对象
java·笔记·学习
雨颜纸伞(hzs)1 小时前
C语言介绍
c语言·开发语言·软件工程
J总裁的小芒果1 小时前
THREE.js 入门(六) 纹理、uv坐标
开发语言·javascript·uv