swift - Swift 中 `async let` 声明的类型是什么?

标签 swift asynchronous async-await static-typing

Swift 5.5 引入了协程、分层任务管理和函数暂停。 新功能之一是语法

async let image = downloadImage(url)

图像的声明可以被await编辑。但问题是,它的类型是什么? Xcode 说它的类型是什么?我可以为函数参数声明什么类型来接受该对象?

最佳答案

the question is, what is its type?

这个问题的解决方式与任何带有初始化的变量声明相同:通过等号右侧的类型。

例如,如果您有一个返回字符串的方法(让我们将其命名为 getMyString),那么当您说

let s = getMyString()

...s 的类型为 String,从被调用方法的返回类型推断出来。

嗯,这与 async let 没有什么不同:

async let s = getMyString()

如果getMyString返回一个字符串,s将是一个字符串。

唯一的区别是,假设,该字符串异步返回。但这对这里的整体语法没有影响。这就是async/await的全部要点;它允许您在正常 Swift 语法范围内异步调用代码(而不必使用 GCD 闭包绕月跳舞)。

关于swift - Swift 中 `async let` 声明的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67960110/

相关文章:

arrays - 更新字典数组中的值

asynchronous - 无法使用 `impl Future` 将异步函数存储在向量中

java - 从 Servlet 启动独立应用程序的线程

C# 在方法参数内等待

multithreading - 如何将 Azure Durable Functions Orchestrator 中的逻辑移到另一个类中?

javascript - 将 Async/Await 函数转换为针对 IE 11 的普通 ES5

json - 如何从 Swift Codable 中排除属性?

swift - 在 swift 中绘制虚线背景

c# - 类中的DataSet是否不异步刷新?

ios - 单击后 firebase 通知警报