次のコードを使用して、クロージャ内から信号を送信しようとしています。クロージャからのチャンネル信号の送信
use std::thread;
use std::sync::mpsc::channel;
fn main() {
let (tx, rx) = channel();
let t1 = thread::spawn(move || {
watch(|x| tx.send(x));
});
let t2 = thread::spawn(move || {
println!("{:?}", rx.recv().unwrap());
});
let _ = t1.join();
let _ = t2.join();
}
fn watch<F>(callback: F) where F : Fn(String) {
callback("hello world".to_string());
}
はしかし、それは次のエラーを上げるコンパイル失敗:
src/test.rs:8:19: 8:29 note: expected type `()`
src/test.rs:8:19: 8:29 note: found type `std::result::Result<(), std::sync::mpsc::SendError<std::string::String>>`
私は何かが足りないのですか?