入门指南

我们首先介绍如何配置开发环境,编译流程,以及代码规范。

开发环境

在Ubuntu 14.04下安装最新版的Rust:

  1. $ curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly

Atom编辑器安装Rust语法高亮支持:

  1. $ apm install language-rust

如果需要一个IDE,推荐使用Tokamak

编译流程

使用Cargo创建hello-world项目:

  1. $ cargo new hello-world --bin

加上--bin选项是因为我们需要生成一个可执行程序,即src/目录下有一个main.rs文件。
如果不加则默认生成Rust库,src/下有一个lib.rs文件。当一个外部包使用extern crate导入时,
Cargo会自动将连字符-转化为下划线_

在项目目录下,Cargo还生成了一个TOML格式的配置文件Cargo.toml
其功能类似于Node.js中的package.json

Cargo自动生成的src/main.rs代码:

  1. fn main() {
  2. println!("Hello, world!");
  3. }

其中println!是一个宏 (macro),在Rust中宏通常是以!结尾。

使用Cargo编译项目非常简单:

  1. $ cargo build

如果需要编译并执行,可以使用cargo run命令。如果需要发布项目,
应该使用--release选项开启优化:

  1. $ cargo build --release

在Rust中解决依赖性相当容易,只需要在Cargo.toml中添加[dependencies]字典:

  1. [dependencies]
  2. semver = "0.1.19"

这里的semver库主要负责按语义化版本规范来匹配版本号:

  1. // in src/main.rs
  2. extern crate semver;
  3. use semver::Version;
  4. use semver::Identifier::{AlphaNumeric, Numeric};
  5. fn main() {
  6. assert!(Version::parse("1.2.3-alpha.2") == Ok(Version {
  7. major: 1u64,
  8. minor: 2u64,
  9. patch: 3u64,
  10. pre: vec!(AlphaNumeric("alpha".to_string()), Numeric(2)),
  11. build: vec!(),
  12. }));
  13. println!("Versions compared successfully!");
  14. }

其中函数Ok()来自于std::result::Result,通过std::prelude模块被预先导入。

代码规范

可以参考Rust风格指南
这里简单强调几点:

  • 使用4个空格进行缩进。
  • 在单行的花括号内侧各使用一个空格。
  • 不要特意在行间使用多余的空格来实现对齐。
  • 避免使用块注释/* ... */
  • 文档注释的第一行应该是关于该部分代码的一行简短总结。
  • 当结束分隔符出现在一个单独的行尾时,应该在其末尾加上逗号。