-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chapter3.1 変数と可変性 #5
Comments
3.1.2 シャドーイング前に定義した変数と同じ名前の変数を再定義することができ、このことをシャドーイングという。 fn main() {
let x = 5;
let x = x + 1;
let x = x * 2;
println!("The value of x is: {}", x);
} 上記のコードの結果は 12 を表示する。 fn main() {
let mut x = 5;
x = x + 1;
x = x * 2;
println!("The value of x is: {}", x);
} シャドーイングを使用しなくても mutを指定し変数を可変とすることで同じ結果の表示はできる。 let spaces = " ";
let spaces = spaces.len(); また、letは変数を新たに定義することなので上記のように、値の型を変更しつつ同じ変数名を使いまわすことが可能になる。 let mut spaces = " ";
spaces = spaces.len(); 同じことを mut を使用した場合はコンパイルエラーとなる。
|
3.2 データ型通常は、式の右辺の型を推論して左辺の変数の型を決定してくれるが、右辺の取りうる型が複数存在する場合は、左辺の変数に型注釈をつけて宣言する必要がある。 暗黙の型変換は存在しないので以下のコードはコンパイルエラーとなる。 println!(" x is : {}", 5.0/4);
4 | println!(" x is : {}", 5.0/4);
| ^ no implementation for `{float} / {integer}`
|
= help: the trait `std::ops::Div<{integer}>` is not implemented for `{float}` タプル複数の値を一つの型にまとめることができる。要素ごとに異なる型を入れることもできる fn main() {
let tup = (500, 6.4, 1);
let (x, y, z) = tup;
println!("x: {} y: {} z: {}", x, y, z);
println!("tup.0: {} tup.1: {} tup.2: {}", tup.0, tup.1, tup.2);
} 変数 tupの値は、個別の変数に分解 配列配列も複数の値を格納できる型になりますが、タプルと違って異なる型の要素を格納することはできません。また宣言時に決定したサイズで固定長です fn main() {
let array = [1, 2, 3];
println!("array[0]: {} array[1]: {} array[2]: {}", array[0], array[1], array[2]);
} |
変数と可変性
mut
キーワードをつけて宣言する必要がある。const
で宣言する:u32
が必ず必要-数値は位をわかりやすくするためにアンダースコア
_
を入れることができる。The text was updated successfully, but these errors were encountered: