swift结合声明式语法

问题描述 投票:2回答:1

[Swift Combine]的声明式语法对我来说很奇怪,似乎有很多事情是看不见的。

例如,以下代码示例在Xcode游乐场中构建并运行:

[1, 2, 3]

.publisher
.map({ (val) in
        return val * 3
    })

.sink(receiveCompletion: { completion in
  switch completion {
  case .failure(let error):
    print("Something went wrong: \(error)")
  case .finished:
    print("Received Completion")
  }
}, receiveValue: { value in
  print("Received value \(value)")
})

我看到我以为是用[1,2,3]创建的数组文字实例。我想这是一个数组文字,但是我不习惯在不将其分配给变量名或常量或使用_ =的情况下“声明”它。

我在.publisher之后插入了一个有意的新行。 Xcode是否忽略空格和换行符?

由于这种样式,或者是我从视觉上解析这种样式的新颖性,我错误地认为“ receiveValue:”是可变参数或某些新语法,但后来意识到它实际上是.sink(...)的参数。

Swift Combine的声明式语法对我来说很奇怪,似乎有很多事情是不可见的。例如,以下代码示例在Xcode游乐场中构建和运行:...

swift variadic combine
1个回答
1
投票

文学

© www.soinside.com 2019 - 2024. All rights reserved.