パソコンをWindows11に更新しました。旧装置にはあまりにディスクの肥やしが増えすぎたので、新装置には、必要性を吟味しつつ、最新の処理系ということで「手動」再インストール中です。今回、ようやくRustの順番です。あれれ、どうやってRustインストールしたんだっけ、忘れてしまったな。。。
※「やっつけな日常」投稿順 indexはこちら
WSL2にRUSTをインストール
ようやくWindows11になったと同時に、WSL2が使えるようになった(旧装置はWSL2すらダメな機種でした)ので、「各種言語処理系」はなるべくWSL2(Ubuntu)側にインストールしようという方針であります。Rustいれるにあたって、WSL2のターミナル上で勝手に手がうごきました。sudo apt updateと。
まあ、apt update自体は構いませんが、apt install で入れるのってなんだったっけ? rust、それとも rustc、いや管理ツールは cargo だから cargo? ま、ここで一歩踏みとどまってよかったです。何も考えずに apt でいれて、実は最新バージョンではなかった、などということは時々あり。。。
以下の「公式」参照すれば、WSL2に最新版のRUSTをインストールするためのスクリプトが掲げられているではないですか。
慌てて apt しなくてよかった。そうでした Rustには Rustup というバージョンアップのお道具もあるので、後々の更新考えると Rustup の経路でやっとく方が穏当な気がします(個人の感想です。)
ダウンロードしている様子の最初の方が以下に。途中で選択あり、それに応えれば、rustc, cargo, rustupなど一式をインストールしてくれます。
これによりインストールできた rustc を呼び出してみると以下のようなバージョンでした。日付みるとまだひと月たってないから結構あたらしいんでないかい。
VScodeにRUST用の拡張機能をインストール
基本、Windows11上のVScodeから WSL2にSSH接続してソース作成から実行、デバッグを行うので、VScodeのRust用のイクステンションを入れたいです。しかしたくさんあるなあ。でも、いの一番に出てくる Rust vor Visual Studio Codeという「公式」っぽいイクステンション、すでに「非推奨」になっているではありませんか。2番目にある、rust-analyzer の方がお勧めみたいです。
rust-analyzerのホームページが以下に。
上記をVScodeに追加しました。これでよいのかな?
動作確認に「参照」を復習
VScodeでWSL2にリモート接続して、Rustのソースを書いて、ビルドして、実行できるところを確認するためにちょっとしたコードを書いてみました。「なんだか、納得がいっていない Rust の参照」を復習するためのコードです。
以下の画面キャプチャで白っぽい背景色になっている部分は、さきほどインストールした rust-analyerが自動的に表示してくれている部分です。&がついたり、付かなかったりを自動識別してくれるので、あやふやな理解の年寄にはありがたい限りです。
途中コメントアウトしてある部分はエラーになるところです。
-
- ptr.len()はOKだけれども、*ptr.len()はNG
- match ptrでデストラクトはOKだけれども match *ptrでデストラクトはNG
- 「借用」している変数i0へのポインタ、i0そのままならOKだけれども i0を書き換えてしまうとNG
- ptrでも*ptrでも、*iptrでもiptrでも値にアクセスできる(暗黙のデリファレンスってやつ??知らんけど。)
まだ全然身に染みてないです。
まあ、処理系はインストールできたし、動作もOKみたいだし。でも分かってないのは私の頭だ。