【问题标题】:Swift anonymous function ends in 'in' [duplicate]Swift匿名函数以'in'结尾[重复]
【发布时间】:2017-04-29 02:29:27
【问题描述】:

我正在学习使用“in”的教程:let completion = {(error: Error?) in }。我正在搜索并在stackoverflow上找到了一个非常相似的答案,但它并没有涉及主体是否以'in'结尾,所以我很困惑,因为我在想'in'表示下一个新的函数体即将到来。这是我找到的原始堆栈溢出资源:Similar question

这是迄今为止在测试中如何使用它的完整实现:​​

func testLogin_MakesRequestWithUsernameAndPassword() {

        let sut = APIClient()

        let mockURLSession = MockURLSession()

        sut.session = mockURLSession

        let completion = {(error: Error?) in }

        sut.loginUserWithName("dasdom", password: "1234", completion: completion)

    }

【问题讨论】:

    标签: ios swift closures anonymous-function


    【解决方案1】:

    你说得对,闭包体应该出现在in 之后。但是,您忘记了函数/闭包主体可以是,因此这是完全有效的,类似于声明具有空主体的函数:

    func doSomething() {
    }
    

    对于闭包,写{ _ in } 也很常见,以防止编译器警告您未使用的参数。

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2015-02-19
      • 1970-01-01
      • 2013-12-18
      • 2012-02-23
      • 1970-01-01
      相关资源
      最近更新 更多