IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

Rustのデータ型

 

まず、基本のデータ型と関数について勉強した。

データ型

Rustの特徴としては、変数に対するデータを型をきっちり決めないといけない静的型付き言語だからです。

どんな型があるかというと大きく分けて

スカラー

スカラー型は、単独の値を表します。Rustには、4つのスカラー型があります。整数、浮動小数点数、論理値、文字です。注意することとしては、文字で、なダブルクォーテーションマークを使用する文字列に対して、シングルクォートで指定されることに注意してください

fn main() {
 let c = 'z';
 let z = 'ℤ';
 let heart_eyed_cat = '😻'; //ハート目の猫
}

 複合型

複合型は、複数の値を一つの形にまとめることができます。種類は、2つあって、ダブル型と配列型があります。

ダブル型

複数の型の何らかの値を一つの複合型にまとめ上げる一般的な手段です。それぞれ型がちがう変数を格納できます。

fn main() {
let tup: (i32, f64, u8) = (500, 6.4, 1);
}

※型注釈は、指定しなくてもいいです。

取り出し方は、各変数ごとにわけて取り出す場合は、

fn main() {
let tup = (500, 6.4, 1);

let (x, y, z) = tup;

println!("The value of y is: {}", y);
}

 

となり、一つずつ指定する場合は、

fn main() {
let x: (i32, f64, u8) = (500, 6.4, 1);

let five_hundred = x.0;

let six_point_four = x.1;

let one = x.2;
}

 となります。

配列

複数の値のコレクションを得ることができます。タプルと違うところは、配列の全要素は、 同じ型でなければなりません。Rustの配列は、固定長なので、一度宣言してしまったら、サイズを変更することができません。ダブルとの使い分けは月などの追加したり削除したりすることがない場合に配列を使用するのがいいかもしれません。

要素の取り出し方としては、

fn main() {
 let a = [1, 2, 3, 4, 5];

 let first = a[0];
 let second = a[1];
}

 となります。ただし、PHPとは違くて、キーに変数を置くことはできないようです。

だめな例:

fn main() {
let a = [1, 2, 3, 4, 5];
let index = 10;

let element = a[index];

println!("The value of element is: {}", element); // 要素の値は{}です
}

 ちょっと不便ですが、添え字が配列長よりも大きいので、エラーとなるよう