問題一覧に戻る
中級構造体
問題52: タプル構造体とユニット構造体
タプル構造体は名前付きフィールドを持たない構造体で、要素には.0、.1のようにアクセスします。newtypeパターンは既存の型をラップして新しい型を作る技法で、型安全性を高めます。ユニット構造体はフィールドを持たない構造体で、マーカーやフラグとして使われます。
// タプル構造体
struct Color(u8, u8, );
// newtypeパターン
struct Meters();
// ユニット構造体
struct ;
impl Color {
fn new(r: u8, g: u8, b: u8) -> Self {
(r, g, b)
}
}
impl Meters {
fn to_feet(&self) -> f64 {
self. * 3.28084
}
}
fn main() {
let red = Color::new(255, 0, 0);
println!("Red: ({}, {}, {})", red., red., red.2);
let distance = Meters(100.0);
println!("{} meters = {:.2} feet", distance.0, distance.to_feet());
let _marker = ;
}