Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Morning Talk -About Rust-

Taisei Ito
May 07, 2020
93

Morning Talk -About Rust-

Taisei Ito

May 07, 2020
Tweet

Transcript

  1. 自己紹介 • 伊藤太斉 ◦ Twitter/Github: kaedemalu ◦ Like: Camera, Ski,

    Craft Beer etc... • 技術領域 ◦ GCP, Terraform, Ansible, Ruby on Rails • コミュニティ ◦ GCPUG Shonan Staff ◦ CloudNative Days Tokyo Committee
  2. 所有権について fn main() { let color = String::form( "red"); println!("apple

    is {}", color); } 「apple is red」になる 所有権が「color」 fn main() { let color = String::form("red"); let color2 = color; println!("apple is {}", color); } エラーになる 所有権が「color2」に 移っているから
  3. Goだと func main() { var color = "red" fmt.Println( "apple

    is ", color) } 「apple is red」になる func main() { var color = "red" var color2 = color fmt.Println("apple is", color) fmt.Println("apple is", color2) } どちらも「apple is red」になる 「color」も「color2」も 使える
  4. 「借用」で一時的に参照させる fn main() { let color = String::form("red"); let color2

    = &color; println!("apple is {}", color); } 「借用」という考え方 あくまで所有権はcolor colorがcolor2に変数を 貸し出す
  5. Cargo.toml • このRustの設定ファイル • ライブラリを列挙する [package] name = "sample-project" version

    = "0.1.0" authors = ["git-name <[email protected]>"] edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] # ここにライブラリ書き加える sdl2 = “0.32.2”
  6. match文 • 他の言語のcase文になる • if文がかなり複雑になるとき ◦ 何パターンかmatchする ケースを出しておく ◦ それ以外の部分は

    まとめてハンドリング extern crate rand; use rand::Rng; fn main() { println!("Game start!"); let rand_number = rand::thread_rng().gen_range(1, 10); println!("random nuumber is {}", rand_number); match rand_number { 1 => println!("one"), 2 => println!("two"), 3 => println!("three"), _ => println!("something else"), } }