0%

2024春夏开源操作系统训练营第一阶段总结-wat3rmelon

两年前就有听说过rust了,但是只是简单的看了下the rust book,并没有实际使用rust进行编程。这次打算借着rcore进一步实践rust。

目前的感受是rust的设计给了很多的限制,同时rust似乎也和cpp一样算是多范式的语言?就比如迭代一个列表既可以写成下面的形式

1
2
3
for ... in something.iter() {

}

写可以写成

1
something.iter().sum();

这样的形式。说实话,我不是很喜欢多范式的编程语言。因为选择太多了,对于我来说阅读别人的代码就会很麻烦。所以这里我更喜欢go的设计。

此外我用rust刷了一些leetcode上的简单的算法题,感觉挺头疼的。需要关注特别多的细节,而且leetcode特别喜欢给i32类型数据,而rust中访问容器用的下标都是usize类型的。导致代码写起来一点也不美观。有特别多的xx as usize

此外,感觉rust的标准库看起来是提供了很多方法来代替本来可用指针操作的方法。比如vector的swap,一般情况下其它语言里可能是这样写

1
a,b = b,a

rust对数据类型还特别敏感,只要有越界就会报错,必须得用饱和减法saturating_sub之类的方式来处理。

总之,我感觉rust的限制太多了,这让我对写好一个rust程序来说感觉心智负担很重。对于不依靠编辑器写完整程序没有信心。

希望接下来的rcore能改变我当前对rust的看法。