Rust 并发编程:闭包与线程的深度探索
1. 闭包基础
闭包是许多编程语言中都存在的强大代码片段,它本质上是将仅在当前代码作用域内使用的代码或变量封装在一个简洁的包中。以下是一个简单的闭包示例:
let add = |x : i32 | x + t;
在这个例子中, | | 内定义了一个名为 x 的变量,它仅在计算作用域内使用,并且类型为 i32 。这里的 add 变量并不是直接绑定值,而是借用了绑定。这意味着我们需要遵循与之前相同的借用规则。例如:
let m = &mut t;
这会导致错误,因为我们试图借用一个在不可变行中被借用的东西。我们可以通过更改闭包的作用域来解决这个问题:
let mut t = 10i32;
{
let add = |x : i32 | x + t;
}
let m = &mut t;
这样错误就会消失。
我们还可以创建更复杂的闭包,例如:
let calc = |x|
{
let mut result: i32 = x;
result *= 4;
result += 2;
resu
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



