Swift闭包捕获列表省略in关键字的语法是否有官方文档说明?
Swift闭包捕获列表省略
in关键字的语法说明 你碰到的这种省略in的写法是Swift官方认可的合法语法,属于闭包简化写法的一种,相关说明在《The Swift Programming Language》的Closures > Closure Expression Syntax章节里。
为什么可以省略in
Swift闭包的完整语法是:
{ [captureList] (parameters) -> ReturnType in statements }
in的作用是分隔“捕获列表/参数/返回类型声明”和“闭包执行体”。当你不需要显式写参数列表和返回类型(编译器能自动推断出来)时,这部分声明被省略,in也就失去了分隔的必要,此时捕获列表之后可以直接跟执行体,不用写in。
你的示例代码里,闭包既没有参数也没指定返回类型,执行体是单一的print(greeting)语句,完全符合这个简化规则,所以[greeting]之后直接写执行体是合法的,和显式写in的版本功能完全一致。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

