Rustを勉強中
いい資料が見つかったので、Rustを勉強中。
Rublidfmでかつて元カヤックのtypester氏が紹介していて興味があった。
179:Rustacean
- rustのインストール for mac OSX sierra
brew install rust
-
- rustcが使用可能になる
fn 関数名(引数) -> 返り値の型 {
関数本体
}
fn 関数名(引数) -> 返り値の型 {
関数本体
}
- FizzBuzz
- 引数付き関数定義
fn 関数名 (変数名: 型名, …)
-
- forループ
for (変数; 終了条件; ステップ) {…}
-
- if文ではなく、if式
- 偶数二乗合計
- isize 符号付き整数の一種
- 関数型言語(javascript etc)などのようにfilter,map,sumと書ける
- 変数束縛
- let 変数名 = 値;でイミュータブルな変数束縛=再代入不可
- 型は推論で自動判別
- let mut 変数名 = 値;でミュータブル=再代入可能,
- 型注釈 let 変数名: 型名 = 値 で型を明示することも可能
- 再代入はできないが、再束縛は可能
fn main() {
// 1つ目の`x`を束縛する。
let x: i32 = 1;
println!("{}", x); // => 1
// 2つ目の`x`を束縛する。これは先のxとは別物。
let x: &str = "abc";
// 以後、`x`は`"abc"`を指すようになる。
println!("{}", x); // => abc
}
- 参照型
- ポインタ型に似た概念
- T型の値のありか
- &値 ... 参照型を作成
- &mut 値 ... 参照先を書き換えられる参照型の値を作成
- *値 ... 参照を外し、参照先の値を取得する
残りはTBD