Rust 程序设计语言 简体中文版 1.85.0"closure-example") due to 1 previous error 第一次使用 String 值调用 example_closure 时,编译器推断出 x 的类型以及闭包的返回类型 为 String。接着这些类型被锁定进闭包 example_closure 中,如果尝试对同一闭包使用不同类 型则就会得到类型错误。 捕获引用或移动所有权 闭包可以通过三种方式捕获其环境中的值,它们直接对应到函数获取参数的三种方式:不可变 多场景中,由于我们能比操作 系统在更细粒度上理解我们的程序,因此我们可以观察到很多操作系统无法察觉的并发机会。 例如,如果我们在构建一个管理文件下载的工具,我们应当以一种不会因开始一个下载任务而 锁定 UI 的方式来编写程序,并且用户应该能够同时开始多个下载任务。不过很多操作系统与 网络交互的 API 都是 阻塞 的(blocking)。也就是说这些 API 会阻塞程序的进程,直到它们处 理的数据完全就绪。 能发生于其 他线程在持有锁时 panic 了且没有释放锁。在这种情况下,调用 unwrap 使其 panic 是正确的 行为。请随意将 unwrap 改为包含有意义错误信息的 expect。 如果锁定了互斥器,接着调用 recv 从信道中接收 Job。最后的 unwrap 也绕过了一些错误,这 可能发生于持有信道发送端的线程停止的情况,类似于如果接收端关闭时 send 方法如何返回 Err 一样。0 码力 | 562 页 | 3.23 MB | 27 天前3
共 1 条
- 1













