rust: Rustがんばろう 23日目
前回からずいぶん空いてしまった。
12章をやっていたようだが記憶に残っていない。
が、読み返すと今作っているプログラムでよくわからず AI のいいなりに実装したところがしばしば出てきていることに気付いた。
具体的には 12.3章だ。
前回分からなかった「4番目は、異なるエラーを処理するのに expect を繰り返し使用しているので~」のくだりは、
直接的な原因は env::args().collect() の長さを調べていないということになる。
最終的には、リファクタリングして parse_config() に依頼するように作り替えるというところまで行っている。
最近調べたcloneのこと もちょっと書いてある。 そういう言語なので避ける手段があれば避けるのが良いが苦労して避けてもどうしようもないというところか。
「組み込み型強迫観念」は何かの本を読んでいるときに出てきたような。「クリーンコードブック」だったか。
結局のところ、Rust はある程度リッチな実行環境向けで安全に実装できるのが利点なので、
そこを組み込み型だけで済ませて型のような情報がないタプルにするよりは struct などを作ってまとまりを持たせた方が
メンテナンスなどにもよいですよ、ということだと思っている。
ある程度リッチな環境は、私の中では「RAM って何キロバイトあるんだっけ?」みたいなのを心配しなくて良い環境だ。
Box<> もここで出てきた。
詳しくは 15.1章になるが、サイズが分からなくてコンパイルできないようなときに使うことができる。
12.3章に出てくる使い方は anyhow::Result<> みたいな型がコンパイル時に明確ではないときのためかな?
おわりに
全然勉強が足りてないな。
Rust は学習コストが高いという噂だったが、AI の補助があるとまあまあできてしまう分、余計そう感じてしまうのかもしれん。