为什么`thread::JoinHandle<T>`需要一个类型参数?

4
在Rust中,标准库中包含的thread::JoinHandle<T>类型具有类型参数T。但是,似乎并没有为任何内容设置或使用T
事实上, Rust's own documentation大多数情况下只使用thread::JoinHandle<_>,每当它需要将JoinHandle<T>分配给某些东西时。那么这个T到底是做什么用的呢?

“看起来 T 并没有被设置或用于任何事情” - 那么你认为 pub fn join(self) -> Result<T> 使用了什么? - Shepmaster
其中就是缺失的链接。我没有意识到线程移动的闭包实际上可以返回一个值,因为这个事实在Rust文档中并没有特别强调。 - TheEnvironmentalist
1个回答

4

这是从线程代码返回的类型。您可以始终自动推断类型,通常不需要显式地编写类型。文档中有一些示例,join 返回一个 Result<T>

以下示例摘自文档:

spawn 返回 JoinHandle,当加入时将返回 Result。

let computation = thread::spawn(|| { 
    // Some expensive computation.
    42
});
let result = computation.join().unwrap();
println!("{}", result);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接