ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

Rustでfizzbuzz

Rustを勉強しようと思ったけど、何からするか思いつかなかったので、とりあえずFizzBuzzやってみた

適当にcargo newした

project自体はcargo newで作った

自分で書いたもの

雰囲気でRustを書いたらこんな感じ

fn main() {
    let list = 1..31;
    for x in list {
        println!("{}", fizzbuzz(x));
    }
}

fn fizzbuzz(v: i32) -> String {
    match v {
        v if v % 15 == 0 => "FizzBuzz".to_string(),
        v if v % 3 == 0 => "Fizz".to_string(),
        v if v % 5 == 0 => "Buzz".to_string(),
        _ => v.to_string()
    }
}

自分が仕事だったりで使う言語はmatch式ないのでやっぱmatch式あるのはいいなーと思った

関係ないけどRustよりもまだ仕事で使えそうなScalaとかも一緒に勉強してる
ちなみによくわからんかったので、とりあえず去年のscala関西で言ってたAkka本買ったので春休みにでもやりたいですね(そんなものは社畜には)

Akka実践バイブル アクターモデルによる並行・分散システムの実現

Akka実践バイブル アクターモデルによる並行・分散システムの実現

頭いいなーと思った実装

自分で書いたあとに、みんなどんな感じで書いてるのか気になって人の見て
別にあれなハックとかじゃなくて、見やすくていいなーと思った実装

proshunsuke.hatenablog.com

fn fizzbuzz(v: i32) -> String {
    match (v % 3, v % 5) {
        (0, 0) => "FizzBuzz".to_string(),
        (_, 0) => "Fizz".to_string(),
        (0, _) => "Buzz".to_string(),
        _ => v.to_string()
    }
}

matchってこんなふうにマッチングできるんですね

これから

Aizu online judgeとかをRustでできるところまでになりたいな~という気持ち(向いてる向いてないは聞いてない)
Scalaでやるのも楽しそうだけど、Scalaはwebアプリケーション書くために覚えたい