那些能坚持写 rust 的都是大神吧,能指教一下怎么坚持下来的吗?

2022-04-16 22:26:38 +08:00
 lsk569937453

写其他的语言都挺有成就感的(java/golang/typescript),写完一个方法编译跑一下,基本没啥错误。就写 rust 真的难受,被编译器教做人,写一个方法磕磕绊绊,绝大多数时候就不能完整写完一个方法没错误的。 1.生命周期不说了,反正基本不可能流畅的写完,编译的时候编译器告诉你这里不对,你得用&/mut/& mut. 2.上面的是方法中的提示。数据结构就更操蛋了,泛型+static+生命周期+引用。导致我自己写出来的代码我都不理解什么意思。。。。 3.这已经是我第四次学 rust 了,从来没有感觉一种语言有这么难。。。真的是满满的挫败感。

有没有主力开发语言是 rust 的老哥,讲讲学 rust 的经验。

5770 次点击
所在节点    Rust
26 条回复
libook
2022-04-18 14:01:15 +08:00
心态要变一下,编译器不让你通过是在帮你避免一些风险,总比运行的时候出了问题再做一脸懵逼的 Debug 要好;而且 Rust 编译器的报错信息已经写得非常贴心了,只要静下心来认真看,大多问题都比较容易解决的。

除此之外也要养成良好的代码习惯,Rust 非常灵活,所以对开发者要求很高,因为需要开发者在众多实现方式中选择最适合当前情况的方式,选错了往往就变成了技术债务。要是不想有这方面的负担可以用 Go 。

用其他语言未必也有成就感,随便写写就能跑,除非你的成就感止步于可以运行,如果经过千辛万苦的修改最终让 Rust 写的程序可以编译通过,那岂不是更有成就感的一件事(自我 PUA )。

实际上很多时候觉得用一个语言比较痛苦是因为自己对这个语言掌握不够娴熟。比如 JavaScript 的弱类型被很多人诟病,甚至一些人宣布以后完全用 TS 来替代 JS ;但对于真正熟练掌握 JS 类型系统的人来说,脑子里完全可以精准预测代码执行后的结果,并且有多种手段可以避免出现问题。

Rust 再怎么抽象,毕竟还是跟 C/C++一个层级的语言,需要对内存的工作原理以及 Rust 对内存的处理机制十分了解才可以明确知道如何运用各项语法特性。其实跟 C/C++比起来可能还降低了处理内存问题的负担,毕竟大多问题编译器就可以帮你检查出来。

我自己也是学了三四遍,主要原因是平时用得少,容易忘。
学的时候可以考虑做些笔记,形成一个自己的速查手册,特别是自己需要花一些功夫理解的概念,以及跟自己学过的其他语言的类似功能的对比和辨析,等用到需要复习的时候能帮你快速想起来就可以,就没必要再去一个字不差地看官方教程。
drackzy
2022-04-20 06:18:34 +08:00
看 youtube 上 RustConf 视频,和推荐 JonGjengset 、Tom McGurl 的频道。
一样之前做心智负担简单的语言,这次也准备试试 Rust 。
kxuanobj
2022-04-22 16:48:01 +08:00
> ”导致我自己写出来的代码我都不理解什么意思“

大概是这样吧:

编译器报错变量不能 Send -> impl Send for XX{} -> 编译器报错 Send 是 unsafe -> unsafe imple Send for XX{} -> 编译通过-> 运行 -> 崩溃 -> Fk Rust!
SaltyKitkat
2022-04-24 00:16:50 +08:00
@araaaa 嗅到了 ub 的味道(x

这种需求一般 safe 就 RefCell ,unsafe 就用裸指针?
araaaa
2022-04-24 09:37:20 +08:00
@SaltyKitkat #24 还有一个 UnsafeCell 这个也比较常用
v23x
2022-06-15 01:43:11 +08:00
rust 比起 c++ 感觉要简单一点啊...

虽然 rust 的学习曲线也非常不友好就是了

rust 的整体设计 说实话 感觉离优雅还好远....

但是现在系统级的编程语言 也没有得选...

起码 rust 和 c++比 闭起眼睛 各方面来说 都是肯定选 rust

吊打 c++ 毫无问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/847398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX