闭包返回类型语法

布罗瑟夫

我在结构中有以下关闭,这会引起一些混乱。

var response: (result: Result<UserInfo>) -> Void

struct RegisterRequest: Requestable 
{
    let userInfo : [String:AnyObject]
    var response: (result: Result<UserInfo>) -> Void
}

现在,当我尝试实现它时,我有以下几点:

let register = RegisterRequest(userInfo: userInfo, response: { (result) in
})

如果闭包语法为

{ (params) -> returnType in 
   statements
}

为什么快速将我的实现自动更正(result) in(Void) in

奥兹古尔

块变量response应采用一个类型为Result,不是Void的单个参数()因此,Xcode自动填充名为result代表Result对象的参数由于return type为Void,之后的任何内容都->可以简单地省略。

更明确地说,它将写为:

..., response: { (result: Result<UserInfo>) -> Void in
})

为了简单起见,将其转换为:

..., response: { (result) in
})

围绕参数的括号也可以省略:

..., response: { result in
})

或使用结尾闭包语法更好

RegisterRequest(userInfo: userInfo) { result in
  ...
}

如果您不希望该块采用任何参数,则可以将其类型定义为以下之一:

var response: (Void) -> Void
var response: () -> Void

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从函数返回的C ++类型的lambda闭包

来自分类Dev

单行闭包,无返回类型

来自分类Dev

返回C ++中的闭包类型

来自分类Dev

无法推断复杂的闭包返回类型swiftUI

来自分类Dev

无法使用if let语句推断复杂的闭包返回类型

来自分类Dev

从函数返回闭包

来自分类Dev

从函数返回闭包

来自分类Dev

解释Swift闭包语法

来自分类Dev

Swift特殊闭包语法

来自分类Dev

Swift Variadic闭包语法?

来自分类Dev

闭包和JavaScript语法

来自分类Dev

闭包和箭头语法

来自分类Dev

无法将返回表达式类型转换为带闭包的返回类型?

来自分类Dev

使用vapply返回闭包

来自分类Dev

返回可变环境的闭包

来自分类Dev

从SwiftUI的闭包返回视图

来自分类Dev

SwiftUI ForEach无法推断复杂的闭包返回类型;添加显式类型以消除歧义

来自分类Dev

无法推断复杂的闭包返回类型;添加显式类型以消除Swift UI的歧义

来自分类Dev

如何在Swift中从Void返回类型的闭包中隐藏隐式返回

来自分类Dev

返回由闭包借用自我产生的迭代器的函数的正确返回类型是什么

来自分类Dev

如何在Swift中从Void返回类型的闭包中隐藏隐式返回

来自分类Dev

Swift-尾随闭包语法

来自分类Dev

带和不带参数的闭包语法

来自分类Dev

带尾随闭包的防护-Swift语法

来自分类Dev

SWIFT闭包语法-从Objective C转换

来自分类Dev

如何从闭包返回对闭包参数的引用?

来自分类Dev

从函数内的闭包内的闭包中返回数据

来自分类Dev

闭包编译器外部-参数-警告-类型注释错误。由于语法错误而无法识别类型

来自分类Dev

返回函数与返回闭包