隨着核心庫拉斯特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
唯一的此類情況?這是一個暫時的事情,而語言的實施得到了穩定?