为什么使用外部包的功能需要将依赖性特征纳入范围?

时间:2017-08-04 21:12:12

标签: rust rust-cargo

请考虑official tutorial

中的以下代码
extern crate rand;

use rand::Rng;

fn main() {
    let secret_number = rand::thread_rng().gen_range(1, 101);
}

rand::thread_rng().gen_range(1, 101)对我来说有点混乱,因为我希望调用rand::thread_rng()来自动解析它正在使用的特征的依赖关系。

但我需要use rand::Rng;才能使用它。

这是否意味着当我想在第三方箱子中使用某些功能时我必须手动解决依赖?

1 个答案:

答案 0 :(得分:0)

  

为什么使用外部包装箱功能需要将依赖性特征纳入范围?

它没有。编译得很好:

extern crate rand;

fn main() {
    let secret_number = rand::thread_rng();
}

然后,您尝试从特征调用该函数调用的返回值。 要求特征在范围内,如Why do I need to import a trait to use the methods it defines for a type?

中所述