1.4.1 Cargo的元数据
打开在“Hello”项目中创建的Cargo.toml文件:
InstallingRust/HelloWorld/Cargo.toml
[package] name = "Hello" version = "0.1.0" authors = ["Your Name"] edition = "2018" # See more keys and their definitions at # https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies]
这个文件描述了整个程序的基本信息,以及如何构建这个程序。它采用TOML(Tom's Obvious, Minimal Language)格式,可以把关于crate的各种信息以不同小节的形式进行组织和存储。[package]小节描述当前crate——如果把当前crate公开发布,这些信息将用于向它的潜在用户介绍自己。这个小节具有扩展性,从而能包含关于当前项目的很多信息。
Cargo已经创建好了运行“Hello, World”所需的一切,所以如果不想更改任何信息,则无须编辑Cargo.toml文件。其中的默认值如下。
(1)name:程序的名称,在这个例子中是“Hello”。它的默认值来自调用cargo new命令时所提供的名称。在编译程序时,这个名称将作为编译后输出文件的文件名。在Windows上,hello变为hello.exe。在类UNIX系统上,输出文件被命名为hello。
(2)version:项目的版本号。Cargo将其初始值设定为0.1.0。只有当需要发布crate的一个新版本时才需要更新版本号。此外,当开发者认为取得了很大进展并需要明确指出这种进展时,也可以更新版本号。在1.8节中,我们将介绍Rust的语义版本控制。就现阶段而言,保持版本号是0.x.y这种形式即可。每一位数字都可以超过10——0.10.0这种写法是没有问题的。
(3)authors:一个列表,可以用一对方括号来表示。它可以包含用逗号分隔的一系列作者的名字——每个名字都写在一对双引号中。如果用户已经配置好了git,则姓名和邮件地址会自动从git中获取。
(4)edition:该项目所使用的Rust的主版本号。它的默认值总是当前最新的版本,在编写本书时,默认值是2018。不同的大版本之间允许引入巨大的语法变化,这可能会使得老旧的程序无法编译。指定edition参数可以告诉Rust编译器哪些语法规则是可以使用的。
现在,元数据准备就位,接下来我们可以进入主程序的源代码了。