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

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

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

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

5749 次点击
所在节点    Rust
26 条回复
cmdOptionKana
2022-04-16 22:33:05 +08:00
你没有用 C++的刚需,就没有用 Rust 的刚需。而如果需要用 C++压榨机器性能,那么用 Rust 通常只会更简单(至少不会更难)。
westoy
2022-04-16 22:37:32 +08:00
还是心态问题吧

学其他几门觉得快+有成就感本质上还是基于第一门同类语言上踩了无数的坑啊, 但是可能你已经忘了

你现在学 rust 的预期是勇猛激进的第 N 门语言, 但是这种要换脑子学的东西之前养成的惯性思维还有可能成为拖累, 这时候预期和实际悖离, 就会感觉非常累, 然后你又没有需求驱动
subpo
2022-04-16 22:57:12 +08:00
哈哈哈,虽然也就看了一点点 RUST 写了一点 demo ,但是你痛苦的地方是我开心的地方诶
aloxaf
2022-04-16 23:01:39 +08:00
问一下,rust 该不会是楼主学的第一门手动管理内存的语言吧?
IsmeOvo
2022-04-16 23:05:52 +08:00
放宽心

Compiler errors can be frustrating, but really they only mean your program isn’t safely doing what you want it to do yet; they do not mean that you’re not a good programmer! Experienced Rustaceans still get compiler errors.

Source: https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html?highlight=rustaceans#variables-and-mutability
mxT52CRuqR6o5
2022-04-16 23:13:42 +08:00
@aloxaf 看样子很可能是的,java/go/js 都是自带 gc 和 runtime 的,rust 相比思路就差很多
greygoo
2022-04-16 23:31:27 +08:00
Rust 是需要你对电脑底层知识有了解,如果你不去思考一些底层的问题比如一个操作实际上对电脑内存做了什么,你是永远不会明白为什么需要生命周期,或是区分共享或可变引用。你缺少一些了解,自然会觉得难。这些东西通常在其他更高级的语言是被抽象化的,但抽象化意味着就有空间优化,你要去想想自己的应用是否需要这个交换。
seakingii
2022-04-16 23:33:47 +08:00
把楼主关起来,电脑里只有 RUST 环境,和一本 RUST 书.什么网络啥的都没有,楼主就能学进去了...
Borch
2022-04-16 23:35:17 +08:00
@aloxaf 确实需要这么问下
lengyuqu
2022-04-16 23:44:29 +08:00
你都写 java go ts 了,肯定不属于 rust 的目标用户,rust 目标用户是 c ,c++这类
pengtdyd
2022-04-16 23:56:19 +08:00
rust 不是你想学就能学的,先学 C 吧
t2jk4000
2022-04-17 02:51:16 +08:00
楼主得先会点 c ,学很多语言都绕不过去的

至于编译错误么,编译器做的检查越多,运行的时候出问题的概率应该会更小,这是好事啊
LeeReamond
2022-04-17 03:16:52 +08:00
个人体验上,你使用不良的设计,或者追求极限要求(比如就是不适用 string ,就要通篇&str ),那在 rust 里就容易吃瘪。反之则可以体会到 rust 相对于 c++的快感。往往越到底层奇技淫巧越少,实现也就是按部就班的实现。
documentzhangx66
2022-04-17 03:53:44 +08:00
拿食物举个例子:

java/golang/typescript 这一堆,好比是你到处探店,对不同店的菜进行品尝,进行打分。这件事的门槛很低。

但 C 语言、CPP 、Rust 甚至汇编,好比是你自己当厨子,从选食材、选厨具、选调料,然后一步一步进行料理,最后变成美食。

虽然目的都是美食,但过程与思路完全不一样。

楼主只是没当过厨子。你拿探店的思维,来自己做菜,当然不习惯。
y1y1
2022-04-17 14:36:20 +08:00
先学 c/c++
但你平时不写 c++,肯定没学 rust 的必要啊。。
PTLin
2022-04-17 14:50:49 +08:00
给你推荐一本书,Programming Rust 现在出到了第二版,不过第二版只有英文,第一版有翻译叫 rust 程序设计。
billzhuang
2022-04-17 23:47:57 +08:00
@seakingii hhhh
araaaa
2022-04-18 09:19:46 +08:00
所以我写起来全用 unsafe
hatsuyuki
2022-04-18 10:02:19 +08:00
@araaaa 在没必要的地方写 unsafe 岂不是浪费了编译器功能
araaaa
2022-04-18 10:16:28 +08:00
@hatsuyuki #19 当然是有必要的地方,比如需要同时持有多个可变引用

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

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

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

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

© 2021 V2EX