关于Rust 1.85稳定版异步闭包与可变借用的技术咨询
Rust 1.85稳定版异步闭包与可变借用的技术咨询
嘿,Rust 1.85版本终于把大伙盼了好久的异步闭包给稳定支持了!这对于天天写异步代码的开发者来说,绝对是个省心的好消息。
咱来看官方给出的一个典型示例,就能快速摸透它的基础用法:
async fn example() { let mut vec: Vec<String> = vec![]; let mut closure = async || { vec.push(std::future::ready(String::from("")).await); }; let res = closure().await; // 要是想验证效果,还可以加一行打印: // println!("vec的长度现在是: {}", vec.len()); }
这里有两个关键点得拎出来说:
- 异步闭包的写法很直观,就是在普通闭包前面加个
async关键字,调用它的时候会返回一个Future,必须用.await触发执行里面的异步逻辑 - 因为这个闭包要修改捕获的
vec(做了push操作),所以咱们得把闭包变量closure声明为mut的——这和普通可变闭包的要求是一样的,毕竟闭包每次被调用时,都会以可变方式借用捕获的变量
内容来源于stack exchange
相关产品推荐
相关产品推荐

