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);
}
}