■構造体、列挙体、マクロ、の理解が必要

・イミュータブル、ミュータブルの概念は誰でも理解出来る。

・Const(定数)はグローバル定数

・formatマクロで文字列を加工して変数への代入が出来る。

・TokenStream構造体、AST構造体とは何か? ⇒ dbg!マクロで確認すると良い。

・match式でselect case文を簡潔に書ける。

・mutキーワードの値書き換えは1回のみ

・所有権と借用

・型推論が可能な時と、型を指定しなければならない時が有る。

・Option型やResult型

・値を返すのにreturn式は必須でない(if文などで早期リターンをするには必要)

通常、pythonやjavascript等を除く言語には、予め型を指定して、指定した変数には何度でも書き換えが可能であるが、

Rustの変数はイミュータブル(不変変数)である為、書き換えが出来ない。

では、letとConstの違いは何か、letはスコープ内で使う変数、Constはuse宣言と同じく一番上で宣言し、グローバル定数として使える。

 

通常の変数の宣言の場合

String str1 = new String(); //変数の前に型宣言しているのが分かりますね。

int i = 100;

 

Rustの場合

let str1 = String::new(); //変数の前にletを付けているので、大体は型推論である事が分かります。

let a: i32 = 100; //i32で型を明示していますが。

 

最初の内は、型推論、イミュータブルとミュータブルの違い、所有権と借用、の3つを理解していれば大丈夫でしょう。