我正在尝试使用Mul
中的core
。
这是由编译器建议的并且有效:
extern crate core;
use self::core::ops::Mul;
但为什么不
extern crate core;
use core::ops::Mul;
工作?
我收到错误error: unresolved import `core::ops::Mul`. Did you mean `self::core::ops`?
答案 0 :(得分:14)
extern crate x;
将x
加载到当前命名空间中。 use
语句是绝对路径,除非它们以self::
开头,因此如果您将extern crate core;
放在除了crate root之外的任何位置,则需要指定绝对路径或使用self::
。
mod foo {
mod bar {
extern crate core;
use foo::bar::core::ops::Mul;
// or `use self::core::ops::Mul;`
// or even `use super::bar::core::ops::Mul;` if you’re mad
// but not `use core::ops::Mul;`.
}
}
...但作为一般规则,您不应该直接使用core
。所有稳定的东西都可以在std
中找到,它会自动包含在内。
答案 1 :(得分:0)
事实证明我应该使用use std::ops::Mul;
。