rust 这门语言太难学了,我都学习一周了,感觉还没摸到门槛,感觉比 C 还难..
以前写了一点教程感觉还不难,现在深入学习,难上加难了
要不要继续学啊!
1
echo1937 2021-03-02 22:13:20 +08:00
C 是很好学的,关键字少,语法也简单,难的是用 C 写项目,相较于其他现代高级语言,要懂很多软硬件基础知识。
|
2
agagega 2021-03-02 22:21:12 +08:00 via iPhone
Rust 就是以语法 /类型系统的方式包装了 C++中很多「最佳实践」,然后语法变鬼畜了点,融了很多函数式的概念进去
|
3
wzb0909 2021-03-02 22:25:43 +08:00
不是哥,有啥语言比 C 简单。
想了许久只有汇编了。 然后,新语言都是大公司维持垄断的武器吧。你给人当枪使,自己得什么好处呢。毕竟 C++做什么都很方便,资料也多呀。 |
4
fwee 2021-03-02 22:34:10 +08:00
C 写出来简单,写对很难..
|
5
imzcg2 2021-03-02 22:35:12 +08:00 via Android
因为 rust 不相信程序员,只相信编译器。不过作为新语言还是可以学的,就是会不会火和赚钱就难说了
|
6
dbw9580 2021-03-02 22:41:08 +08:00 via Android 3
我觉得 rust 作为一个人的第一门编程语言其实不会比其他语言更困难,特别是不会比 C 困难。你觉得难是因为有了 C 的基础,写惯了 C 的代码,Rust 的所有权和生命周期的概念很不好融入进去。我记得我刚开始看 rust 的时候照搬学 C 的经验,想要实现一个链表,那种基本上寸步难行的挫败感是压倒性的。但如果从一开始就告诉你变量有所主,借用不能超过主人的生命周期等等,你会觉得这些根本就是理所应当的,实现一个安全可靠的链表就是有这么多内在的复杂性。再加上 rust 里普遍的 RAII 模式,比 C 手动管理内存需要了解的东西少得多了。
|
7
SuperMild 2021-03-02 22:55:46 +08:00 5
C 语言本身就是很简单的,难的是内存管理、代码复用等语言以外的东西。
Python 就语言本身来说,比 C 语言复杂很多,而 Python 易用的表象是因为其有 GC 、标准库比较好用、第三方库比较多。 Rust 对标 C++, 语言特性无比丰富,同时又要人脑协助管理内存,难学是正常的。 编程技术有句名言是没有银弹,C 本身简单,但语言对人的帮助就少(汇编语法更简单,但对人的帮助也更少,需要人多用脑多花精力)。Python 语言复杂一些,但由于功能多,对人的帮助也多,写起来就舒服,但同时运行效率也会更差。 Rust 和 C++ 既想多一些功能给人多一些帮助,又不想损失性能,结果就只能难学难用。 |
8
12101111 2021-03-03 00:16:00 +08:00
C 语言很难写出没有 UB 的复杂代码,虽然 rust 还没有语言规范定义什么叫 UB (只有草案 https://github.com/rust-lang/unsafe-code-guidelines ), 但是 rust 除了 unsafe 基本上消灭了 unsound, 并且以一种尽可能人体工程学友好的方式提供出 0 开销抽象的语法,因此就把整个计算机抽象模型暴露给用户了
|
9
namelosw 2021-03-03 01:41:36 +08:00
C 算比较好学的了, 不仅一本薄薄的 K&R 就囊括了, 还有小半本是附录.
倒是 C++无比复杂, 比 Rust 复杂多了. 其实 Rust 没多难, 多花点时间就好了, 加油. |
10
chinvo 2021-03-03 01:48:11 +08:00 via iPhone 2
我深度地用过的语言,大概就是 C 、C#、PHP 、Swift 和 rust 了
rust 用起来很爽 可以说是除了 C# 之外第二爽的了 只要能编译,基本不怕跑飞 |
11
supermao 2021-03-03 07:09:15 +08:00
没半年不要想
|
12
AndyAO 2021-03-03 07:20:01 +08:00
感觉你这个问题缺少关键的信息,只说感到难学,但没有给出具体的说明,所以搞不懂具体的细节,不知道为何难学,自然也就没有办法想出好的解决方法,建议补充一下细节。
|
13
xdeng 2021-03-03 09:46:01 +08:00
C 代表了自由
|
14
shilyx 2021-03-03 10:15:43 +08:00
rust 很丑,不建议使用
基本上 C/C++的一些不便不必要用 rust 来填补,golang 、c#分担一些就很舒适了。 |
15
PTLin 2021-03-04 20:02:34 +08:00 2
假如你看官方的 The Book 学习的话我建议你看完教程之后再看一下 Rust By Example,因为很多东西 The Book 里都没讲,也可以买一本 Programming Rust(Rust 程序设计),我觉得这本书比所有官方的学习资料都要好。
并且建议大概看一遍 rustup doc --std,比如 mem 模块里的函数都能干什么,原始指针类型都提供了什么和 C 语言里指针的等价操作,ptr 模块里的 NonNull 是做什么的,三角函数什么的是以 f32/f64 里的方法提供的等等东西。 |
17
libook 2021-03-12 11:51:28 +08:00 1
越简单的语言,对开发人员要求越高。
C 很简单,但是经验不足的开发者极其容易写出有缺陷的程序,而且恐怖的是这些程序多半是可以启动运行的。 Rust 的设计目标之一就是能用一些万全策略来规避以往在 C 、C++上遇到的各种问题;如果你觉得解决这些问题并不是你的首要需求,那么你可能并不需要 Rust 。 作为一个大学英语四级都没过的人,Rust 是第一个我完全读英文教材学习的语言。 |
18
Coelacanth 2021-03-15 14:58:11 +08:00 6
@shilyx
pub fn is_leap_year(year: i64) -> bool { match (year % 4, year % 100, year % 400) { (0, 0, 0) => true, (0, 0, _) => false, (0, _, _) => true, (_, _, _) => false, } } Exercism 上一个印象很深的求闰年的写法 |
19
GTim OP @Coelacanth match 带来的极大震撼
|
20
gaifanking 2022-09-30 16:33:22 +08:00
@Coelacanth 跟 if else 看上去没太大区别呀
|
22
zdustrong 2023-09-29 21:30:19 +08:00 via Android
会者不难,难者不会
|