以前、読んだ「Swift 実践入門」で、サンプルとして作成するGithub CLI ツールを Rust で書き直してみた。
今回のツールを作成するにあたり、なるべく unwrap を使用しないようにした。 (元々のコードがエラー処理などをちゃんとしているので、真似ただけとも言える。) 今までは、なんとなく書いていると、Option や Result などがあると、unwrap して手を抜いてしまっている場合が多かった。 今回は、独自のエラーの enum を作成するなどしてみた結果、色々と勉強になった。 ただ、下記のような部分は、?演算子で取り出して再び Ok でラップしているので、若干冗長な気がするのだが、一行でかけたりしないのだろうか?
あと、やっぱり Swift と Rust は似ているなと思った。 Swift のコードをそのまま写しているような感覚のところも何箇所かあった。 ただ、やっぱり作っていて Rust の方がコンパイラに怒られる回数は多いような気がする。 あと、理解不足が原因だが、Rust の方がなぜコンパイルエラーになっているか考えさせられるところが多々あった。 まだまだ、勉強不足と言うことを痛感した。
ただ、既存のツールを移植してみるというは、とても勉強になったので(題材が良かったというのもあるが) これからもやっていきたい。