AtCoder Beginner Contest 259 A

https://atcoder.jp/contests/abc259/tasks/abc259_a

年齢を入れたら身長が出る構造体の関数を作ります。
0歳のときの身長を構造体の要素にしたいので、静的関数で作るようにします。静的関数を書くには、selfを引数に書かないようにするだけのようです。

// Growth Record
#![allow(non_snake_case)]

fn read<T: std::str::FromStr>() -> T {
    let mut line = String::new();
    std::io::stdin().read_line(&mut line).ok();
    line.trim().parse().ok().unwrap()
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    read::<String>().split_whitespace()
            .map(|e| e.parse().ok().unwrap()).collect()
}

struct Person {
    init_height: i32,
    delta: i32,
    stop_year: i32
}

impl Person {
    fn height(&self, T: &i32) -> i32 {
        if T <= &self.stop_year { self.init_height + &self.delta * T }
        else { self.init_height + self.delta * self.stop_year }
    }
    
    fn create(X: i32, D: i32, T: i32) -> Person {
        Person { init_height: T - D * X, delta: D, stop_year: X }
    }
}

fn main() {
    let v = read_vec();
    let N: i32 = v[0];
    let M = v[1];
    let X = v[2];
    let T = v[3];
    let D = v[4];
    
    let chokudai = Person::create(X, D, T);
    println!("{}", chokudai.height(&M))
}