サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

Master mind in Rust; part 3 型エイリアス

今回やること

エイリアス

Rustでは、型エイリアスを使って、型に別名をつけることができます。 例えばmaster mindプログラムではcodeをVec, hintを(usize, usize)で扱っていますが、これに名前をつけましょう。

type Code = Vec<usize>;
type CodeSet = Vec<Code>;
type Hint = (usize, usize);

これにより、例えば


fn calc_hint(code: &[usize], guess: &[usize]) -> (usize, usize) 

↓↓↓

fn calc_hint(code: &Code, guess: &Code) -> Hint

fn policy(guess_set: &[Vec<usize>]) -> Vec<usize>

↓↓↓

fn policy(guess_set: &CodeSet) -> Code

と書くことができます。読みやすくなり、コードの管理も容易になります。

コード