前回、定数といっても 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に従え、「一切メンバ無」の構造体って何よ?” の続きを読む
やっつけな日常(34) Rustに入ればRustに従え、self.0って何?構造体とトレイト
前回は、時にselfになったりSelfになったりする「ヤバイ奴」selfを少し勉強してみました。しかし、まだまだ分からないことだらけです。直ぐにCかPythonを連想してしまう年寄りには意味不明な記述をまた見つけました。self.0。なんですかこれは? 構造体の特定形式向けにトレイトを実装したら現れてきます。
やっつけな日常(33) Rustに入ればRustに従え、self、Self、&self
ちんたら勉強しているRust言語です。Exampleのソースコードを拝見していて気になるのが、selfだったり、Selfだったりする self です。Pythonのselfのような「慣用語」的お約束ではなく keyword みたいです。大文字になったり、小文字だったり、&がついたり、::がついたり一体全体これは何?
やっつけな日常(32) Rustに入ればRustに従え、文字列操作、おっかなびっくり その1
テキトーに書いても走る(走ったように見える)言語もあれば、走る前に阻止される言語もあります。どうもRustは後者であるようです。Rustでの文字列のとり扱いを始めましたが、Cの文字列に慣れた頭でいると、いろいろ転換せねばなりませぬ。文字列を配列とみて添え字でアクセスするような方法は禁止じゃと。 “やっつけな日常(32) Rustに入ればRustに従え、文字列操作、おっかなびっくり その1” の続きを読む
やっつけな日常(31) Rustに入ればRustに従え、お名前のお作法、いろいろあるのよ
毎度、慣れぬRustのお作法に行く手を阻まれます。今回は変数の型を表示しようとしてハマりました。実はRustの命名規則とか、お名前、キーワードにまつわるあれこれを知らないことが多すぎたです。Rustはスネークケースと思い込んでいたら「そうではなかった」し、見知らぬ予約語も密か?に隠してあったりして。
やっつけな日常(30) Rustに入ればRustに従え、モジュールを別ファイルにするお作法
時折Rust言語を使ってみては、慣れぬRustのお作法に行く手を阻まれます。今回は、関数やらモジュールやらを別ファイル(ついでに別階層)にして取り込む件。Cのようにヘッダファイルを作ったり、Makefile書いたりする必要ないですが、初心者にはあまり親切ではない気がします。やれば出来る?ホントか。
やっつけな日常(29) Rustに入ればRustに従え、「所有権」を「借用」できたのね
所有あれば借用もあり。Rust言語は現実的です。前々回は「特定のトレイトの標準的な実装」を継承することで構造体のクローンを作ってみました。クローンは元の構造体とは別な実体なので所有権も別、後はご勝手。その一方、今回は所有権を「借用」して、構造体を参照するどころか書き換えまでやってみます。やればできる!ホントか?
やっつけな日常(28) Raspberry Pi OS、32bit版から64bit版へ移行
別シリーズでArmの64bitのアセンブリ言語命令を練習中。これにAndroidスマホ使ってました。でも最近スマホの電池の減りが速くて練習しずらいです(You tubeのせい。)そこで32ビットOSで引っ張っているRaspberry Pi 4を64ビットOSに移行しようと決断。簡単ではあるけれどいろいろあるんだ。