〜第1回〜
最も愛されている開発言語(2019年)
※Rust そのもののインストールはやらないよ
fn main() {
println!("Hello, world!");
}
1. main.rsを作成
2. コンパイルと実行
$ rustc main.rs
$ ./main
Hello, world!
$ rustfmt --check main.rs
Diff in /Users/hironori/work/learn-rust-programming/hello_world/main.rs at line 1:
fn main() {
- println!("Hello, world!");
+ println!("Hello, world!");
}
$ rustfmt main.rs
プロジェクトの作成
$ cargo new hello_cargo
TOMLファイル
$ cat Cargo.toml
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["hirontan <hirontan@sora.flights>"]
edition = "2018"
[dependencies]
$ tree
.
├── Cargo.lock
├── Cargo.toml
└── src
└── main.rs
$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
ビルド
実行
$ ./target/debug/hello_cargo
Hello, world!
ワンコマンドで!
$ cargo run
$ cargo build --release
$ cargo check
コンパイルのみ実行
リリース用ビルド
3章までの話まで
// src/main.rs
fn main() {
let x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
$ cargo run
Compiling variables v0.1.0
error[E0384]: cannot assign twice to immutable variable `x`
--> src/main.rs:4:5
|
2 | let x = 5;
| -
| |
| first assignment to `x`
| help: make this binding mutable: `mut x`
3 | println!("The value of x is: {}", x);
4 | x = 6;
| ^^^^^ cannot assign twice to immutable variable
error: aborting due to previous error
For more information about this error, try `rustc --explain E0384`.
error: could not compile `variables`.
To learn more, run the command again with --verbose.
コード
実行
mutableにしたい場合、
let mut キーワードを利用する
fn main() {
let x = (let y = 6); # → letステートメントで別の変数を割り当てている。Rustではエラーになる。
}
fn main() {
let y = {
let x = 3;
x + 1
};
}
fn main() {
plus_one(5);
}
fn plus_one(x: i32) -> i32 {
x + 1
}
{
let s = String::from("hello"); // s is valid from this point forward
println!("{}", s);
} // this scope is now over, and s is no longer valid
const MAX_POINTS: u32 = 100_000;
fn main() {
let mut x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
println!("The value of MAX_POINTS is: {}", MAX_POINTS);
}