Rustの構造体

概要

Rustで構造体を扱う方法を解説する。

Rustでは、構造体をCと同様にstructで定義する。

以下にコード例を示す。

struct Person{
	name: String,
	age: i32,
}
 
fn main(){
	let person = Person{"sato", 26};
}

Rustでは、このstructからクラスを作成することが出来る。

Rustにおけるクラス

Rustにおけるクラス

概要

Rustでは、クラスを作成する際にまずは構造体を作成してから行う。

struct Person{
	name: String,
	age: i32,
}

構造体を作成したらimplキーワードでクラスを作成する。
構造体の変数にアクセスするには、selfキーワードを使用する。

impl Person{
	//処理
}

メソッド

メソッドの定義には、fnを使用し、構造体の変数にアクセスしたい場合は引数に&selfを付けると使用可能。

メソッドの使用には::でアクセス。

impl Person{
	//メソッドの定義
	fn person_print(&self){
		println!("Hello, my name is {} and I am {} years old.", self.name, self.age);
	}
}
 
fn main(){
	let person = Person{ "sato", 26 };
	person::person_print();
}

コンストラクタ

コンストラクタの作成にはnewキーワードを使用する。

impl Person{
	fn new(name: &str, age: i32) -> Person{
		Person{ name, age }
	}
}
 
fn main(){
	let person = Person::new( 
		String::from("sato"), 26
	);
}

トレイト

トレイトとは、複数の構造体で同じようなメソッドを作成できる機能。
多言語で言うところのinterfaceである。

トレイトの作成には、traitキーワードを使用する。
継承にはforキーワードを使用する。

trait VoiceTrait{
	fn speak(&self);
}
 
struct Bird{
	voice: String
}
 
impl Bird for VoiceTrait{
	fn speak(&self){
		print("voice: {}".self.voice);
	}
}
元記事へのリンク