Eukleides project

from http://d.hatena.ne.jp/u5_h/

Rustを勉強中

いい資料が見つかったので、Rustを勉強中。
Rublidfmでかつて元カヤックのtypester氏が紹介していて興味があった。
179:Rustacean

  • rustのインストール for mac OSX sierra

brew install rust

    • rustcが使用可能になる

fn 関数名(引数) -> 返り値の型 {
関数本体
}

fn 関数名(引数) -> 返り値の型 {
関数本体
}

fn 関数名 (変数名: 型名, …)

    • forループ

for (変数; 終了条件; ステップ) {…}

    • if文ではなく、if式
  • 偶数二乗合計
  • 変数束縛
    • 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