感觉 rust 门槛太高了

348 天前
 yaott2020

都说 rust 难学,我自己跟着 b 站入门教程学完之后觉得 rust 比想象中的更难以上手。学完基础语法之后依旧不太会写,总是写 bug 。rust 语法略微有点怪异,并且限制太多,我如果按照以前写其他语言(例如 go )的习惯是不行的。各位 v 友们学过 rust 分享一波上手经验呗

9048 次点击
所在节点    程序员
72 条回复
loveDiu4ever
348 天前
入门两次了,我都不知道学完能干啥。
x1abin
348 天前
配合 Copilot 辅助工具,写起来就很爽了。
xfun
348 天前
@princesswar721 真实了,学完真的不知道干啥
pocarisweat
348 天前
Rust 的所有权系统其实是把 C++那套最佳实践落实到语法上,然后融合了很多函数式语言( OCaml )的元素。

很多人不理解 C++这类语言的痛点,或者在学校学过一点 C++但印象仅停留在 new 了东西要手动 delete ,学起 Rust 就会造成不知道为什么要这么设计的感觉。

其实这种无 GC 的原生语言确实在很多地方都不是刚需。上次还有 V 友说用 C++写项目太老土了的。
LiuJiang
348 天前
楼主说的没错,hhh ,rust 确实难学,我看了文档和语法以及相关介绍,还是没懂能干啥
OliverDD
348 天前
学倒还好,难在于保持使用...之前学完就立马给个开源项目提了 PR ,但平时工作接触不到,慢慢就生了...
unnamedhao
348 天前
入门不容易,放弃容易
Mexion
348 天前
之前学过一点,用不到,已经忘了
wjx0912
347 天前
搬砖:包工头时不时抽你一鞭子
写 rust:编译器时不时抽你一鞭子
aloxaf
347 天前
@yaott2020 #3 所有权其实不算难,它的规则是很直观的,尤其是对于 C++ 程序员来说(
觉得难,我认为由浅入深可以分为以下几个方面:
1. 习惯这种思考方式,至少能够搞清一个简单变量的所有权。
2. 掌握一些常用 API ,比如怎么从复合数据结构中转移一个值的所有权或者交换两个值。
3. 理解某些复合数据结构中为什么不能直接转移所有权,比如 Vec<String> 中为啥用 v[0] 来直接转移所有权会报错。
4. 闭包的所有权,啥时候用 move ,在循环中怎么 move ,怎么手动创建引用来避免 move (其实这更多的是生命周期问题了

个人认为,Rust 只有异步和生命周期混合起来的时候,才最让人头大……
mscorlib
347 天前
与 Rust 斗其乐无穷
kljsandjb
347 天前
@Jirajine 同感,asynchronous rust 真的挺变态的。。
Jirajine
347 天前
@des 这不是 clone 的问题,在你不使用非常高级、复杂,generic 参数特别多的类型时( async 和基于 async 的框架就是在使用,并且抽象泄漏严重,使用它们你不得不关注内部细节),rust 一点都不困难,仅用 ide 的编译器错误提示可以减少大量其他语言开发时不断编译运行的试错次数。
至于不想处理静态的引用生命周期,替代方法是用 Rc/Arc + clone 顶着,通常你想要一个非静态生命周期的引用不代表你想用 clone 。
Jirajine
347 天前
@kljsandjb aysnc rust 太着急了,还没有设计好就急不可耐的稳定化,后面的库/语言改变只能不得不继续屎上雕花,这样下去迟早 rust 会成为第二个 cpp 一样的缝合怪。
GeruzoniAnsasu
347 天前
@aloxaf 规则是很直观,但到达目标的路径一点也不直观。

C++程序员(我): 哦,unique_ptr 嘛我懂了,那,怎么跨线程交换写入权呢
zhuangzhuang1988
347 天前
重复入门多次
放弃。。
hunk
347 天前
语法读懂是有些略难,但程序跑起来,特别是跨平台编译后跑的稳稳的,感觉贼爽。不用装那么些个依赖库,一个程序搞定。似乎又回到 C 的感觉。
lsk569937453
347 天前
vscode+analyzer 开发神器
codeium(chatgpt):如果 github 的 copilot 用不起,用这个神器即可。
异步运行时就用 tokio 。

生命周期就是难。先把简单的了解以后就可以搞开发了。有了 chatgpt 后,学 rust 的难度可以说是指数性下降也不为过把。
holulu
347 天前
感觉入门难,其实是把其他语言的习惯带过来了。因为 rust 很多东西的观念跟大部分语言都不一样。如果接触过的语言比较多,估计就没那么难了。因为编程语言能解决的问题和解决方式来来去去就那么几种。
zcg007
347 天前
推荐一下 vlang

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

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

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

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

© 2021 V2EX