【发布时间】:2014-12-22 06:06:37
【问题描述】:
Rust 包含 2 个相同的(通过 api)vec 模块:
http://doc.rust-lang.org/std/vec/index.html
http://doc.rust-lang.org/collections/vec/index.html
有什么区别?哪个更好用?
【问题讨论】:
Rust 包含 2 个相同的(通过 api)vec 模块:
http://doc.rust-lang.org/std/vec/index.html
http://doc.rust-lang.org/collections/vec/index.html
有什么区别?哪个更好用?
【问题讨论】:
collections crate 通常不能直接使用;你应该改用std crate。
std::vec 只是 collections::vec 重新导出;它是完全相同的模块。
如果你想使用Vec,你甚至不需要用use 导入它,因为它是prelude 的一部分。前奏中定义的项目总是隐式导入。如果您需要从该模块导入其他项目,请写 use std::vec::X; 而不是 use collections::vec::X;
为什么collections 存在?它适用于那些编写不在操作系统上运行的 Rust 应用程序或是操作系统的应用程序的人。 std 提供依赖于操作系统的功能,但 std 的某些部分不提供;这些被分成更小的板条箱,可以更容易地重复使用。但是,这些 crate 不会在不久的将来稳定,而 std 将在 Rust 1.0 中稳定,所以除非你真的需要避免 std,否则只需使用 std。
您可以通过将 #![no_std] 添加到您的 crate 根目录来告诉编译器您不想使用 std。
【讨论】: