fn main() {
use std::sync::mpsc::channel;
let (sender, recv) = channel();
for i in 0..10{
let sender = sender.clone();
let index = i;
std::thread::spawn(move||{
for i in 0..10{
let pt = Point{x:index, y:i};
sender.send(pt).unwrap();
}
});
}
let mut z= Vec::new();
std::mem::drop(sender);
loop{
match recv.recv(){
Ok(v)=>z.push(v),
Err(e)=>{
println!("{}",e);
break;
}
}
}
println!("{:?}",z);
}

컴파일러 타입추론에 의해서 channel의 센더와 리시버, z벡터 객체의 아이템 타입은 Point라는 걸로 자동 처리함