使用外部包是Cargo Crate是Rust的一个特点,以使用rand crate为例,在编写代码之前,需要修改Cargo.toml文件。编辑该文件,在末尾增如下几行代码。
[dependencies] rand = "0.3.0"
在这个例子中,我们用了rand = 0.3.0版本,即rand= ^0.3.0 的简写,代表“任何兼容0.3.0的版本”,rand=0.3.x。在此进行编译时,默认获取当前最新版,如0.3.14。若需限制使用某个版本,如0.3.0,则可以使用:
[dependencies] rand = "=0.3.0"
另外,在第一次编译时,Cargo会查明所有符合要求的版本,并把它们写到Cargo.lock文件里。在后续构建项目的时候,Cargo会注意到Cargo.lock的存在,并直接使用指定的版本,不会去查明版本。
在编译Rust代码时,下载的Crate默认保存在“~/.Cargo”目录下。若这个目录下的代码发生了改动,会自动重新下载新的Crate覆盖原来的。因此如想改动Crate中代码,必须使用如下代码来说明依赖本地的Crate。
[patch.crates-io]
rand = { path = "./rand"}