😺
Rust構造体-struct-の基本的な使い方
構造体は複数の異なるデータ型を1つのデータ型にまとめるための仕組みです。
構造体を定義する
構造体は struct キーワードを用いて定義します。各フィールドはそのデータ型と名前を指定します。下記の例では、name(String型)、age(u32型)、is_student(bool型)という3つのフィールドを持つ構造体になります。
struct Person {
name:String,
age: u32,
is_student: bool,
}
構造体をインスタンス化&フィールドへのアクセス
構造体のインスタンスを作成するには、
struct名 { フィールド名: 値, ... }
の形式で初期化します。
フィールドへのアクセスには'.'を用います。
∫
fn main() {
// 構造体のインスタンス化
let person1 = Person {
name: String::from("Alice"),
age: 25,
is_student: false,
};
let person2 = Person {
name: String::from("Bob"),
age: 30,
is_student: true,
};
// 構造体のフィールドにアクセスする
println!("Name: {}", person1.name); // Name: Alice
println!("Age: {}", person1.age); // Age: 25
println!("Is Student: {}", person1.is_student); // Is Student: false
println!("Name: {}", person2.name); // Name: Bob
println!("Age: {}", person2.age); // Age: 30
println!("Is Student: {}", person2.is_student); // Is Student: true
構造体にメソッドを実装する
構造体にはメソッド(関数)を実装することもできます。
impl ブロックを使用してメソッドを定義し、&self を使って構造体自体への参照を受け取ることができます。
struct Person {
name:String,
age: u32,
is_student: bool,
}
// 構造体にメソッド(関数)を実装することもできる
impl Person {
// メソッドの定義
fn introduce(&self) {
println!("My name is {} and I am {} years old.", self.name, self.age);
}
}
fn main() {
// 構造体のメソッドを実行する
person1.introduce(); // My name is Alice and I am 25 years old.
person2.introduce(); // My name is Bob and I am 30 years old.
}```
Discussion