【发布时间】:2021-08-19 08:07:44
【问题描述】:
我正在学习 rust,而学习编程语言的最佳方式显然是阅读和理解他人的代码。现在我面对这条线,即使在阅读了文档、其他源文件和谷歌搜索之后我也无法理解:
在zoxide's主文件中,有这一行:
if let Err(e) = App::parse().run() { ... }
App::parse() 是什么意思? App 是一个结构而不是一个变量,所以我明白为什么它不是.parse(),但为什么是::parse(),它有什么作用? (我在app's 源代码中找不到它的定义(在this file) 中也找不到)
【问题讨论】:
-
对我来说它看起来像这样:在
app/_app.rs中,clap宏(来自 theclaplibrary 用于App,它添加了parse函数。调用然后使用App::parse()来触发命令行的解析。(我不太了解Rust,所以我对这个解释的细节没有足够的信心来从中创建答案。) -
docs.rs/clap/3.0.0-beta.4/clap/trait.Clap.html#method.parse>
-
它来自 clap_derive:github.com/clap-rs/clap/tree/master/clap_derive
-
@CherryDT 恭喜,对于那些不太了解 Rust 的人来说,你做得非常好!
-
@user4815162342 原来我错了,因为
derive(Clap)- 我错过了 - 负责它,而不是clap宏。
标签: rust