在 rust 中如何引用上层目录的模块啊

2019-07-14 18:57:55 +08:00
 KeepPro
例如这样的文件结构:
.
|--------a.rs
|--------f
|--------|-------b.rs
|
这个时候 a.rs 里面可以这样
mod f::b
那么在 b.rs 里面如何引用 a.rs
7480 次点击
所在节点    Rust
8 条回复
kiwi95
2019-07-14 20:56:29 +08:00
好像是直接用的,mod 像是直接把代码插在那里,具体太久没用了忘记了
trait
2019-07-14 22:01:20 +08:00
crate::a
KeepPro
2019-07-15 03:01:40 +08:00
@kiwi95 直接 mod a 的话,报 file not found for module 'a'
KeepPro
2019-07-15 03:02:20 +08:00
@trait crate::a 报 'crate' in paths is experimental (see issue #45477)
KeepPro
2019-07-15 03:20:31 +08:00
一直让我绑定手机号我也是服了 base64 aHR0cHMlM0EvL2kuYm1wLm92aC9pbWdzLzIwMTkvMDcvNzE2Nzg3YWQ3MmE3NTViZC5wbmc=
KeepPro
2019-07-15 03:26:12 +08:00
哦 我明白了。直接 ::开头就是绝对路径了。哈哈哈 可以安心睡了。
oahillihao
2019-07-15 07:08:57 +08:00
@KeepPro
mod crate{
mod a{}
mod f{
mod b{
}
}
}
这样的文件结构相当于上面这种模块组织形式。rust 中的模块引用有绝对路径和相对路径两种。b.rs 引用 a.rs ,绝对路径是 crate::a,相对路径是 super::super::a。
你可能用的 rust 版本比较低,因此出现 4L 那样的问题。如果可能的话还是跟着新的版本走吧,会更易用些。
KeepPro
2019-07-15 09:36:29 +08:00
@oahillihao 多谢大佬答疑解惑。

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

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

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

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

© 2021 V2EX