RUST 0x00 START::DASH

RUST 0x00 START::DASH

1 Hello, World!

创建项目目录(Windows CMD)

> mkdir "%USERPROFILE%\projects"
> cd /d "%USERPROFILE%\projects"
> mkdir hello_world
> cd hello_world

编写与运行一个RUST程序

文件名: xxx_x.rs

运行程序(在相同目录下):

> rustc main.rs
> .\main.exe

解析一个RUST程序

fn main() {

}
  • fn→函数(function)
    println!("Hello,world!");
  • !→调用一个宏,而不是一个普通函数

编译和运行不是一步完成的

  • .rs→源码

  • .exe→可执行文件

  • .pdb→调试信息

2 Hello, Cargo!

用Cargo创建一个项目

cargo new

> cargo new hello_cargo
> cd hello_cargo
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2019/9/30     21:24                src
-a----        2019/9/30     21:24             19 .gitignore
-a----        2019/9/30     21:24            233 Cargo.toml
  • toml → Tom's Obvious, Minimal Language

文件名: Cargo.toml

[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["Your Name "]
edition = "2018"

[dependencies]

文件名: src/main.rs

fn main() {
    println!("Hello, world!");
}

Cargo会自动生成一个Hello, world!程序

搭建与运行一个Cargo项目

cargo build

> cargo build
   Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 2.85 secs

target/debug/hello_cargo.exe创建一个可执行文件

在第一次使用的同时也会在最上级目录下生成一个 Cargo.lock , 用来记录该项目的dependencies的版本。

cargo run

> cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/hello_cargo`
Hello, world!

cargo check

> cargo check
   Checking hello_cargo v0.1.0 (file:///projects/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.32 secs

在不生成可执行文件的情况下快速检查代码。

搭建发布 Building for Release

cargo build --release

在优化条件下编译(能让代码运行地更快),在target/release生成可执行文件。

Cargo as Convention

> git clone someurl.com/someproject
> cd someproject
> cargo build

小结

  • 直接用rustc编写并运行Hello, world!
  • 用Cargo创建与运行一个新项目

参考

The Rust Programming Language by Steve Klabnik and Carol Nichols, with contributions from the Rust Community : https://doc.rust-lang.org/book/

你可能感兴趣的:(RUST 0x00 START::DASH)