🌟

[Rust備忘録]where句ってなんやっけ…

2022/01/30に公開

Rust The Book より。

しれっと、where句がコードに出てきて、あれ…これ…なんやっけ…ってなったのでメモ。

ジェネリックを読みやすくするために使えるんですね。

fn some_function<T: Display + Clone, U: Clone + Debug>(t: &T, u: &U) -> i32 {

ってなってたら、シグネチャが読みにくいーってなるのを、

fn some_function<T, U>(t: &T, u: &U) -> i32
    where T: Display + Clone,
          U: Clone + Debug {

と書けるんですな。

うん。こりゃ便利だ。

関数だけじゃなくて、ジェネリックがでてくるところで使えるんですね。

struct LimitTracker<'a, T: 'a + Messenger> {

ってやつも、

struct LimitTracker<'a, T>
    where T: 'a + Messenger {

ってできるってことかー。

where句使うと、落ち着いてコード読めていいね。

GitHubで編集を提案

Discussion