よく分からないものがあると、手を出すクセがあるのですが、突き詰めるとこまでは、絶対にいかない性格です。これもその一つでしょう。Rustは新しい言語です。C、C++と近いようですが、分かってません。その中で気になったのが、Visual Studio Codeでデバッグしていくと、マシン語が出てくる。見てもわからないけど、今まで見たことがないと思います。C、C++ではメモリの管理がユーザー任せだと思います。多少は違うかも?。ガベージコレクタが無いと言うんですが?
いつものように図書館から、参考書を借りてきました。要らなくなれば返せばいいので、手を出しやすい。「実践Rust入門」、初っ端から結構難しい。下がその例です。逆ポーランド記法の計算をする例です。
これが頭に入らない。何やってるの?って感じです。自分なりに考えてみました。基本としては、a b +というものは、aとbを足して、答えとするです。少し変えて、a b c + -だったら、bとcを足したものをaから引いたものが答え、ということでしょう。
あとはプログラムしていきます。式をspace区切りで、配列に入れて、先頭から演算子が出てくるまで探します。見つかったら、2個手前と1個手前の要素を使い計算して、それを新しい計算式の文字列にします。文字列のはじめの部分とあとの部分があるので、それを繋げて、新しい文字列とします。計算は、文字列を配列に、space区切りで入れ直しますが、1個になればそれが答えです。
再帰使えそうですが、どうすれば良いかはわかりません?配列のまま処理は意外と難しいかも、配列の操作が必要になるでしょうし、文字列に戻して、最初からやるのが一番楽かもしれません。
実行画面はVSCodeで、Rustです。上のコードはスクリーンショットなので、fc2WordPressブログにコードを張っておきましたが、シンタックスハイライトは出来てません。どうやらFreeでは無理みたいです。