美文网首页
Swift @escaping @Sendable 关键词

Swift @escaping @Sendable 关键词

作者: _浅墨_ | 来源:发表于2021-12-18 12:34 被阅读0次
let nanoseconds: UInt64
let operation: @Sendable () async throws -> Success

init(
  seconds: TimeInterval, 
  operation: @escaping @Sendable () async throws -> Success
) {  
  self.nanoseconds = UInt64(seconds * 1_000_000_000)
  self.operation = operation
}

关键词(keywords)解释:

@escaping: 加上此关键词,说明可以在初始化方法(init)的范围之外存储和执行闭包。

@Sendable: 我们不能像处理其它类型那样遵守闭包或函数类型的协议。这个新关键字表明闭包或函数类型符合 Sendable 协议,这意味着在并发域之间传输是安全的。

async: 意味着闭包应该在并发异步上下文中执行。

throws: 闭包可能会抛出异常。

这是一组繁琐的关键字,但它们都可以帮助编译器(compiler)和运行时(the runtime )清楚地了解我们的意图并正确运行代码。

2021.12.18 午后
上海 徐泾镇图书馆

相关文章

网友评论

      本文标题:Swift @escaping @Sendable 关键词

      本文链接:https://www.haomeiwen.com/subject/dixpfrtx.html