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/