我51第三天装了台3d打印机...
然后发现丫自带的上位机貌似挂了,
然后我本来就对他的上位机不太满意,准备直接上红米手机刷机klipper的方案。
然后发现得把手机的电池改成供电板直接供电。
然后发现成品的直供板做的都是些啥臭鱼烂虾,干脆自己画个。
然后因为我集成度太高板子空荡荡的,于是想着干脆塞个CAN吧。
然后想想CAN都塞了,干脆下位机也塞进去吧,
然后就到了现在了...
回到你这个问题,你对rust的理解还是太表面了。当然严格地说你说的本质上也没错,rust确实就是做的比c多一点,可以理解为c+。
这里的过程嘛,得稍稍说的久一点。C诞生于田园时代,那个时候大家是相信性本善的。其实那个年代诞生的几乎所有系统都这样,都是不怎么设防的。所以你会觉得C简单又强大,因为大家不需要付出安全这个overhead。
但现在参与IT的阿猫阿狗实在是太多了,现在必须假设大家是性本恶的。(包括主观上的恶,以及能力不足导致客观上的恶)。所以2000年之后几乎所有的系统都在增加安全性,编程语言当然也一样。然而始终没有诞生一个比较好的,不需要付出性能代价同时又很安全的语言。最接近的是c++。但c++的历史包袱太重,同时也塞入了太多很复杂的东西,什么都想要,导致c++变成了一坨shit。所以直到现在,在需要性能的领域,事实上大家还是只能用c,或者通过规定人为禁用c++一部分feature。这两个方法都不太好。
rust的诞生,本质上就是一次吸收了2000之后众多语言特性后,做出了很好取舍的工程实践。所以在研究语言的学院派眼里rust是很土鳖的东西。但在工程师手里它就是刚刚好的工具,它切实的找到了c和c++的平衡点,所以我觉得它可以称之为c+。
回到rust具体的问题上来说。rust主要的贡献,是引入了生命周期管理这个模型,从而让系统代替人去管理,它并不直接等于内存管理,而且事实上rust也无法绝对的杜绝内存泄漏。只是用rust写出内存泄露的程序很困难而已(没有足够的理解,一般人写不出来)。其他都是次要的改进,把它改造成一个更先进的c。比如模式匹配就是一种非常便利的写法,毕竟2023年了,还是if-then-else,一大堆switch-case的不仅仅是土鳖,更重要的是容易犯错误。rust是安全优先的理念,哪怕删掉生命周期管理,rust在整个语言设计上也是设计的更强调安全的语言。
最后你的问题我不是很懂。rust的函数当然可以返回值,而且比起c可以返回复杂的多的多的东西。
至于指针么,rust里面其实也有非常接近指针的东西,叫box。类型转换什么的当然也都是可以的。
【 在 dismoon 的大作中提到: 】
: B站现在里面的视频up主水货越来越多了,最近几天windows11内核用了rust刷屏,然后去官网看了一下帮助文件
: 目前来说,rust也就主打一个安全,指针不能瞎JB指了。
: 但是把函数返回值搞掉是做什么?
: ...................
--
FROM 180.111.26.*