やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Rust自習(じゃんけんゲーム4)

 Handshowfmtにした。

成果物

参考

コード

fn main() {
    loop {
        // ...
        println!("{} {}", player, npc);
        // ...
    }
}
impl std::fmt::Display for Hand {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match *self {
            Hand::Rock => write!(f, "✊"),
            Hand::Scissors => write!(f, "✌"),
            Hand::Paper => write!(f, "✋"),
        }
    }
}
impl Hand {
    // ...
    /*
    fn show(&self, hand: Hand) -> char {
        if hand == Hand::Rock { '✊' }
        else if hand == Hand::Rock { '✌' }
        else { '✋' }
    }
    */

所感

 改善された。

 でも、コードは冗長にみえる。もっと簡単に書けないものか。こんな暗号じみたコードはコピペらないと書けない。Rustへの深い理解を前提としている。こういうもんだと覚えるしかないのか。

 というか、Hand.show()メソッド使ってなかったし、バグあったな。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

前回まで