随着核心库拉斯特1.6稳定,以下成为可能,我不需要用libstd
更多的替换libcore
任何:为什么我需要声明“extern crate core”来使用libcore?
//extern crate core; //won't work without this line
extern crate num;
use core::ops::Add;
use num::bigint::{BigInt};
fn main() {
let mut big = "8705702225074732811211966512111".parse::<BigInt>().unwrap();
let one = "1".parse::<BigInt>().unwrap();
big = big.add(&one);
println!("{:?}", big);
}
但有一件事我感到困惑 - 为什么我需要声明“外部箱子核心”?据我所知,libstd
是建立在libcore
之上的。 libcore
旨在独立于操作系统,而libstd
的实现可以是操作系统特定的。我从来没有必要指定“extern crate std”。令我感到困惑的是,在上述情况下,我不需要在Cargo.toml中添加libcore
作为依赖关系,尽管它是一个外部条目。
是libcore
唯一的此类情况?这是一个暂时的事情,而语言的实施得到了稳定?