Rust包含2个相同的(通过api)vec模块:
http://doc.rust-lang.org/std/vec/index.html
http://doc.rust-lang.org/collections/vec/index.html
有什么区别?哪个更好?
答案 0 :(得分:7)
collections
crate并不意味着直接使用;你应该使用std
箱子。
std::vec
只是collections::vec
重新出口;它是完全相同的模块。
如果您想使用Vec
,则甚至无需使用use
导入它,因为它是prelude的一部分。前奏中定义的项目始终是隐式导入的。如果您需要从该模块导入其他项目,请写下use std::vec::X;
而不是use collections::vec::X;
为什么collections
存在?它适用于编写不在操作系统上运行的Rust应用程序或 操作系统的应用程序的用户。 std
提供了依赖于操作系统的功能,但std
的某些部分没有;那些被拆分成较小的板条箱,可以更容易地重复使用。但是,这些包装箱在不久的将来不会稳定,而std
将为Rust 1.0保持稳定,所以除非你真的需要避免std
,否则只需使用std
。
您可以通过将std
添加到您的包根来告诉编译器您不想使用#![no_std]
。