是的. module系统过于复杂不直观, 明明一个import解决的问题. 结果需要mod, pub mod, use, pub use, self, super这么多令人困惑的关键字.
Cargo连递归import都懒得做........... 需要开发人员在main.rs中把所有需要的都引入进来..... :(
20210920更新: 我解释下上面说的"Cargo连递归import都懒得做".
这个我没有表达清楚, 应该说是"既然已经use了, 为什么还要用mod告诉编译器我要是使用这个包"
mod utils; use utils::add;
既然我要使用utils的add函数, 显然我需要引入utils这个包, 那么mod utils
就可以省略. 实际上mod utils
这种语法压根不需要. 一个很简单的设计如下
use utils; // 引入utils包. 可以使用 utils:add访问 use utils::add; // 引入utils包的add函数. 无需utils::前缀即可访问add函数 use utils::*; // 引入utils包中的所有定义. 无需utils::前缀即可访问
上面这种设计减少了一个让人困惑的mod关键字(如果叫importmod还容易理解些), 而且和现有一些语言的模块引用方式相同, 利于快速上手, 这对于新兴语言尤其是学习成本较高的rust来说有很大收益.
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有