Swift 匿名函数结束于 'in'
Swift anonymous function ends in 'in'
我正在学习使用 'in' 的教程,如下所示:let completion = {(error: Error?) in }
。我正在搜索并在 Whosebug 上找到了一个非常相似的答案,但是它没有涉及主体是否以 'in' 结尾所以我很困惑,因为我在想 'in' 表示一个新的函数主体即将到来下一个。这是我发现的原始堆栈溢出资源:
这是迄今为止在测试中如何使用它的完整实现:
func testLogin_MakesRequestWithUsernameAndPassword() {
let sut = APIClient()
let mockURLSession = MockURLSession()
sut.session = mockURLSession
let completion = {(error: Error?) in }
sut.loginUserWithName("dasdom", password: "1234", completion: completion)
}
你是对的,闭包体应该出现在in
之后。但是,您忘记了 function/closure 主体可以是 空 ,因此这是完全有效的,类似于声明一个具有空主体的函数:
func doSomething() {
}
对于闭包,通常编写 { _ in }
以防止编译器警告您未使用的参数。
我正在学习使用 'in' 的教程,如下所示:let completion = {(error: Error?) in }
。我正在搜索并在 Whosebug 上找到了一个非常相似的答案,但是它没有涉及主体是否以 'in' 结尾所以我很困惑,因为我在想 'in' 表示一个新的函数主体即将到来下一个。这是我发现的原始堆栈溢出资源:
这是迄今为止在测试中如何使用它的完整实现:
func testLogin_MakesRequestWithUsernameAndPassword() {
let sut = APIClient()
let mockURLSession = MockURLSession()
sut.session = mockURLSession
let completion = {(error: Error?) in }
sut.loginUserWithName("dasdom", password: "1234", completion: completion)
}
你是对的,闭包体应该出现在in
之后。但是,您忘记了 function/closure 主体可以是 空 ,因此这是完全有效的,类似于声明一个具有空主体的函数:
func doSomething() {
}
对于闭包,通常编写 { _ in }
以防止编译器警告您未使用的参数。