什么是处理这种情况的最佳方法:
use std::thread;
struct Prefe;
fn main() {
let prefe = Prefe;
start(&prefe).join();
}
fn start(pre: &Prefe) -> thread::JoinHandle {
thread::spawn(move || {
println!("Test spawn");
})
}
I get the error:
error[E0243]: wrong number of type arguments: expected 1, found 0
--> src/main.rs:11:26
|
11 | fn start(pre: &Prefe) -> thread::JoinHandle {
| ^^^^^^^^^^^^^^^^^^ expected 1 type argument
我认为我可以使用类似这样的东西,但是我不知道用什么来代替T
:
fn start<T>(pre: &Prefe, t: T) -> thread::JoinHandle<T> {
thread::spawn(move || {
println!("Test spawn");
})
}
我看到thread::spawn
使用这个来返回,但是我不知道这是否能帮助我或如何使用它:
Builder::new().spawn(f).unwrap()
这个方法似乎可以工作,但我不知道它是否正确或错误:
fn start(pre: &Prefe) -> thread::JoinHandle<()> {
thread::spawn(move || {
println!("Test spawn");
})
}
i32
就更清晰了。例如,它只需要指示它,因此-> JoinHandle<i32>
或作为T
的参数。感谢您的时间。 - Angel Angel