Rustは型に厳格といいつつ「意外と融通を利かせて」くれるような気が(個人の感想っす。)それはコンパイラが厳格に管理している(変なことはできない)ために可能な技?なのかもしれませぬが。今回は「融通が利く」println!と「融通が利かない」assert_eq!を比べながら実験してみたいと思います。どちらもマクロだね。
“やっつけな日常(48) RustにいればRustに従え、融通の利くprintln!” の続きを読む
やっつけな日常(47) RustにいればRustに従え、イテレータで使えるメソッドその3
やっつけな日常(46) Rustに入ればRustに従え、イテレータで使えるメソッドその2
前回からイテレータを勉強してます。前回は残念なことに直なメソッドばかりで紛糾?しなかったです。今回から紛糾しそうなメソッドに入っていきたいと思います。その入口は count() とな。実行すると結果を返してくれるけれどイテレータを「消費」してしまうメソッドです。そのままでは意味ないけれど2度数えることはできないの?<訂正あり>
やっつけな日常(45) Rustに入ればRustに従え、イテレータで使えるメソッドその1
今回からイテレータに入りました。前回、NoneとSome、そしてanyを「予習」しておいたおかげで多少は分かりやすかったんでないかい。でも今回は分かりやすい奴ら(メソッド)ばかり練習してみたから当たり前か。なんだかね、とってもいろいろいるのよね、よくわからない奴らが。<訂正あり
やっつけな日常(44) Rustに入ればRustに従え、NoneとSomeは仲間、anyは別
前回はクロージャ。今回はまたも寄り道、NoneとSomeは仲間だけれど、anyは違う件です。Rustのソースコードを読んでいてよく調べもせず、Noneは定数、Someとanyは何かの述語みたいなものと勝手に想像してたのはハズレました。Someは大文字始まりだし、anyは小文字なのでそれみりゃわかるだろ、という話ですが。
“やっつけな日常(44) Rustに入ればRustに従え、NoneとSomeは仲間、anyは別” の続きを読む
やっつけな日常(43) Rustに入ればRustに従え、カウンタ・クロージャを返したいです
前回、mutを減らせなくている話を書いたらば先達の方にツイッターにてお教えいただけました。分かっている人のコードを拝見すると目から鱗だよ。いや~Rustのイテレータを勉強しないと。といいつつ今回はイテレータの前にクロージャであります。どうもイテレータと地続き?みたいだし。でもクロージャってこんな面倒だったんだっけ?
やっつけな日常(42) Rustに入ればRustに従え、ループを回る、mutの個数?
前回は「ありがちな」エレトステネスの篩をRustで練習してみました。しかし気になったのが mut の多さです。小さなプログラムなのに mut と宣言しているところが4か所もありました。普段、Cで書いていたら気にしないのにRustだと mut と書かねばならないのでとても気になります。Rustを作った人たちの思うツボか?
やっつけな日常(41) Rustに入ればRustに従え、配列の大きさ、usizeって何よ?
前回、定数といっても unsafe な奴を使ってしまったので、今後は unsafe でない constを使うべし、と思い定めました。さてconstな定数を使って配列を定義してみたところがエラー。Rustは、配列のサイズを宣言する際に定数の型すらもチェックしておるのでした。成り行きで配列を確保してるんじゃね~よ、と。 “やっつけな日常(41) Rustに入ればRustに従え、配列の大きさ、usizeって何よ?” の続きを読む
やっつけな日常(40) Rustに入ればRustに従え、unsafeだらけの可変static
「C言語」頭の老人には毎度恐れいるばかりのRustであります。今回はstaticとな。C言語であればスコープにかかわりなく静的に「持続する」変数を使うことができるアレです。Rustにもstaticあり。似たものに見えて、そのように使えないこともないのですが、制限キビシーです。unsafeの嵐。やってはいけないってこと?
やっつけな日常(39) Rustに入ればRustに従え、Rust再インストール後動作確認
パソコンをWindows11に更新しました。旧装置にはあまりにディスクの肥やしが増えすぎたので、新装置には、必要性を吟味しつつ、最新の処理系ということで「手動」再インストール中です。今回、ようやくRustの順番です。あれれ、どうやってRustインストールしたんだっけ、忘れてしまったな。。。
やっつけな日常(38) Rustに入ればRustに従え、強力過ぎる?Rustのenum
遥かな古代、K&Rの時代のC言語には enum など無かったです。その後ANSI-C(C89)の時代に enum 導入。それで未だに enum と書くときに心に引っかかる年寄りデス。しかしRustのenumに比べるとCのenumなど「何の芸もない」ものに見えますな。Rustのenum強力。列挙型いや構造体だ、クラスだ?
“やっつけな日常(38) Rustに入ればRustに従え、強力過ぎる?Rustのenum” の続きを読む
やっつけな日常(37) Rustに入ればRustに従え、唐突に Box って何よ?
Rustのソースを眺めていて、また分からないものを見つけました。唐突に現れた Box<i32> なるもの。大文字(アッパーキャメルケース)で書かれていることをみると型、それもジェネリック型に見えます。Boxって何なの?調べてみたら値を「ボックス化」してくれるんだとか?ますます分からん?
やっつけな日常(36) Rustに入ればRustに従え、ジェネリック型の構造体を作ってみる
前回はユニット様構造体というメンバ無、大きさゼロの構造体を見ました。でもこれ、れっきとした「具象型」でした。空だけれども型はあるのだと。今回は「なんにでもなる」ジェネリクス型の構造体を作って触ってみます。「なんにでもなる」ということは、実体が空のユニット様構造体を型パラメータにしても良いのだと。Rustは禅問答?喝!
“やっつけな日常(36) Rustに入ればRustに従え、ジェネリック型の構造体を作ってみる” の続きを読む
やっつけな日常(35) Rustに入ればRustに従え、「一切メンバ無」の構造体って何よ?
前回、構造体を使ってみました。「構造体には3種あり」といいながら「Cみたいな」構造体と「タプルみたいな」構造体の2種のみ使用。もう一個は何なのか気になってました。そいつは「フィールドのないユニット様構造体」なんだとか。こいつ構造体といいつつフィールドは無く、サイズも0だと。どういうこと? “やっつけな日常(35) Rustに入ればRustに従え、「一切メンバ無」の構造体って何よ?” の続きを読む