Rustのチュートリアルを読んでいて一瞬理解できなくなるところがあったからメモ。
Rubyばかり使っていたらこの部分で戸惑った。
食事する哲学者より
let handles: Vec<_> = philosophers.into_iter().map(|p| {
thread::spawn(move || {
p.eat();
})
}).collect();
Rubyではmap()とcollect()は名前が違うだけで同じメソッドなので、なんで同じメソッドを繰り返しているのか、と首をかしげた。
ちょっと調べたらわかった。map()はMap型を返すので、collect::()をして型変換をする必要があるらしい。
へーって思った。まる。