■構造体、列挙体、マクロ、の理解が必要
・イミュータブル、ミュータブルの概念は誰でも理解出来る。
・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つを理解していれば大丈夫でしょう。