【问题标题】:"std::vec" vs "collections::vec""std::vec" 与 "collections::vec"
【发布时间】: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

有什么区别?哪个更好用?

【问题讨论】:

    标签: vector rust


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多