![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rust
DBBH
成都有合适webgl/webgpu岗位的请私信我
展开
-
rust持续学习 raw pointer 1
oh 对了,指针的获得方式就是let p = &some_value as。emmm所以知道能这样写就行,尽量别这样写。mut,原本是immutable就改成。比如上面是四个u8,可以拼一个u32。文档说这个做法不是每个机器都能移植。rust里是这么操作的。然后是函数指针这个东西。就是原本是mut就改成。原创 2023-11-05 22:57:55 · 408 阅读 · 0 评论 -
RUST持续学习 一点borrow问题的心得记录
这样就在外面直接light_sys.setXXXX setYYYY setZZZZ就避免了把这个light_sys传来传去。这个例子可能不太合理,但是主要就是记一下这个事情,理解这个问题,尽量避开传来传去,就能避免多次mut borrow~这里要么把lighsys传递给对应的light进行操作,要么把point传递给lightsys进行操作。写RUST的时候,我经常遇到一个报错 说哪已经mut borrow了 不能再次mut borrow。经过我的BUG体验之后,这类似的问题我算是摸清了。原创 2023-10-19 21:40:40 · 353 阅读 · 0 评论 -
rust持续学习 Fn FnMut FnOnce
如果执行test(f)这里会发生move,把f直接move了,Once的意思就清晰了,你既然已经move进去test里了,那么test结束的时候 f 就不复存在了,所以就只能一次,就Once了。如果f里发生了s.push_str(“7”)那么明显 这个时候发生了MUT!只需要把Fn改成FnMut。另外一个操作是Once。Fn是啥,普通的一款。原创 2023-09-08 11:17:13 · 489 阅读 · 0 评论 -
rust持续学习 get_or_insert_with
然后翻了一下代码,是来自option.rs,原来就是空则赋值,这个写法对我来说蛮新奇的。感觉这个名字蛮奇怪的 insert。忽然今天看见一段代码。原创 2023-08-04 09:21:05 · 1056 阅读 · 0 评论 -
rust学习slice
然后不能直接用比如let s: str = "ssss"这种写法,因为str被认为是切片。用起来比较简单,这里需要注意一下,这里其实用的是切片的引用,而不是切片。emmm看起来是个数组一样的东西 但是他没有所有权。原创 2023-04-02 19:44:03 · 109 阅读 · 0 评论 -
rust学习之from into
RUST里有个神奇的设定,你给一个类型实现了from trait,那么就不用写into的实现也能调用into了。于是可以直接用int.into()得到Number类型的一个对象,感觉很是方便。看这个例子,给Number这个结构体实现了一个from trait。原创 2023-01-29 20:13:30 · 219 阅读 · 0 评论 -
wgpu 解开迷惑
https://docs.rs/wgpu/latest/wgpu/struct.RenderPass.html这里当真是搜不到end。这里看他花括号刚好是在renderpass用完了那里,也就是马上会调用drop了,所以没问题。之前说到发现renderpass没有end方法 很疑惑。原来是直接封装进去了,在示例代码中。后来在代码里看见这个。原创 2023-01-11 16:05:24 · 146 阅读 · 0 评论 -
rust&C++学习之 RAII
rust里也是这么个意思,你阔以实现drop trait,把资源释放logic写进去,到了析构就好了,并且这个东西他自己就知道调用,不像cpp如果不用智能指针还手动调用析构函数。这个概念是说资源获取就初始化,然后析构就释放资源,对应的CPP大概就是说利用构造函数和析构函数来做到初始和析构两件事,如果一层class做不到,就封装一下,贯穿主题。原创 2023-01-08 19:31:52 · 107 阅读 · 0 评论 -
wgpu 卡住
pub fn begin_render_pass原创 2022-12-01 15:12:16 · 161 阅读 · 0 评论 -
wgpu go
找了好多wgpu的代码都跑不起来,估计和最终版本没落地 他改代码有点关系于是找到了一个learnwgpu的原文,找了一篇其中的代码,创建窗口。原创 2022-11-22 20:01:24 · 235 阅读 · 0 评论 -
rust开发wasm 01
cargo-generate的包上,需要cargo install cargo-generate(MMP 这要手动整)安装完毕之后 按教程所说是wasm-pack new name就可以创建出一个项目了。结果 我输入这个命令行之后 出现了奇怪的报错 并不能成功创建 说问题出在一个叫。于是手动搞,但是我最后16G的C盘啊 一跑就变成15.xG了,心累WAW。这里我只会rustup 一路default。然后是安装wasm-pack这个软件。励志挣钱了给自己买个大的固态C盘。首先是rust环境搭建。原创 2022-11-19 20:33:28 · 787 阅读 · 0 评论 -
rust enum学习记录
他这样用来写链表,这里也还好,就是普通俩类型仍然是match。后面的方法基本靠match self相关的东西来做。在以前 我浅薄的知识告诉我 枚举只能这样。经过阅读,大概感觉这个枚举算一个结构体。new的时候实际还是创建了一个枚举对象。rust的例子一开始也很正常。怎么还能给他实现成员函数?这样解析一个Option。原创 2022-11-06 18:29:54 · 163 阅读 · 0 评论 -
rust Option来初始化空值
Option用来给有可能为空的值作为初始化原创 2022-10-24 15:53:35 · 726 阅读 · 0 评论 -
rust game of life学后感
这个实际上是做了个小视频,你假定无限个格子,根据当前格子的状态和周边八个格子的状态,决定下一帧他是个什么状态,连续的改变会看起来很有意思上面的代码这样翻译为规则C 当前N 邻居如果C存活,且邻居有两个以下活着,他会死如果C存活,邻居有2或者3个活着,他下一帧没事如果C存活,邻居大于3个活着,他会死如果他死了,邻居有3个活着,他会下一帧复活。原创 2022-10-13 17:16:03 · 346 阅读 · 0 评论