"std::vec"与"collections::vec"的区别

5
1个回答

9
collections crate并不是通常意义下直接使用的,你应该使用std crate。 std::vec只是重新导出的collections::vec;它是完全相同的模块。如果您想使用Vec,甚至不需要使用use导入它,因为它是prelude的一部分。预定义中的项目总是隐式导入的。 如果您需要从该模块导入其他项目,请使用use std::vec::X;而不是use collections::vec::X;
为什么会有collections?它是为那些编写不在操作系统上运行的Rust应用程序或操作系统的应用程序提供的。 std提供了依赖于操作系统的功能,但是std的某些部分则没有;这些部分被拆分成更易于重用的较小的crates。 但是,这些crates在不久的将来不会稳定下来,而std将在Rust 1.0中稳定下来,因此除非您真正需要避免std,否则请使用std。 您可以通过在crate root中添加#![no_std]来告诉编译器您不想使用std

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接