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実践バイブル アクターモデルによる並行・分散システムの実現
- 作者: レイモンド・ロステンバーグ,ロブ・バッカー,ロブ・ウィリアムズ,前出祐吾,根来和輝,釘屋二郎
- 出版社/メーカー: 翔泳社
- 発売日: 2017/12/13
- メディア: Kindle版
- この商品を含むブログを見る
頭いいなーと思った実装
自分で書いたあとに、みんなどんな感じで書いてるのか気になって人の見て
別にあれなハックとかじゃなくて、見やすくていいなーと思った実装
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アプリケーション書くために覚えたい