1
Thetruechar 2021-02-26 11:59:48 +08:00 via Android
很喜欢这样的引战帖
|
2
Leviathann 2021-02-26 12:08:42 +08:00 via iPhone
反正我觉得官方书的模块化那章写的很烂
最后一节忽然说文件夹也是 path 的一部分 也没提 lib 和 binary 怎么交互 试了下才知道把 lib 当成外部 package 一样用 cargo 文件夹名才能导进来 |
3
GTim 2021-02-26 12:13:22 +08:00 1
nnd. 所有权和所有权转让、指针、智能指针、装箱等等才是大头啊,这几个你中有我,我中有你,不来回个 50 遍根本理解不了
|
4
HeapOverflow 2021-02-26 12:14:35 +08:00
一看就是没被 c++虐过
|
5
CatCode 2021-02-26 12:19:21 +08:00
|
6
hunk 2021-02-26 12:25:52 +08:00
花了几天时间看 rust 和 go,准备先从 go 学起。
有个需要大并发的需求. |
7
palfortime 2021-02-26 12:35:53 +08:00 via Android
2018 可以不用 mod.rs 。写 mod xxx,有什么不好,这样更明确清晰。
|
8
fakeshadow 2021-02-26 17:30:54 +08:00
那如果让你知道了 pub(self/super/crate) 是不是会更抓狂?
|
9
syaka OP @palfortime 没发现一个文件作为一个 mod 有什么优点,现在的模块化语法太繁琐了。
|
10
syaka OP @Thetruechar 非引战,实际项目中实在繁琐的不行,更理解不了为什么一个文件作为一个 mod 有什么收益。
|
12
syaka OP @HeapOverflow 还真是,人生苦短,我用 Golang
|
15
CatCode 2021-02-26 20:05:58 +08:00
@syaka 可能是早期的设计吧。而即使到了 2018 edition 也不便于改太狠,毕竟兼容性还是要考虑的。
有的东西,在早期可能是当时很好的设计。但是随着技术发展,更好的设计可能会出现,然后在对比原来的设计,就发现原来的设计不是那么美好。 |
16
Jirajine 2021-02-26 20:26:31 +08:00 via Android
我到觉得两者没太大优劣之分。
rust 的单文件模块,一个模块代码很多的时候文件就会太长,不得不分模块。而 go 就可以用多个文件写同一个模块。 而 go 用目录分模块,模块很多一个模块代码很少的时候也会很麻烦,并且文件名不体现模块名。 但是 rust 整个的包管理 crate 系统要更好,lib 的归 lib,bin 的归 bin,比 go 都混到一起更清晰。 |
17
plko345 2021-02-27 08:51:18 +08:00 via Android
喜欢 rust,但这点也同意楼主的观点
|
18
syaka OP @Jirajine go 用一个目录作为一个模块(和 Java 一样),一般是目录名体现模块名。
cargo 是包管理工具,这一点确实比 go modules 好。 |
19
poly000 2021-04-05 07:47:22 +08:00
感觉可以一个 lib 一个 crate 这样 cargo 支持多 crate 管理
|
20
Nugine0 2021-04-28 11:32:32 +08:00 via Android 1
|
21
galenjiang 2022-07-20 15:51:02 +08:00
mod.rs 和 index.js 有区别吗?
另外,这样写的好处是,没有像 node 一样软链导致的各种问题,声明和实现分开了。 |