从Swift 3迁移到Swift 4

时间:2018-07-10 14:35:18

标签: swift

我正在研究一个从Swift 3迁移到4的项目。 我解决了除此以外的所有问题。首先,我完全不了解此代码:

let messageText = stride(from: 0, to: lineNumber, by: 1).reduce("") { "\n\($0.0)" }

减少功能在这两个版本之间已更改。所以我想将其重写为Swift 4。

1 个答案:

答案 0 :(得分:1)

假设目的是使用数字从 0(含)到lineNumber(不含),以换行符分隔,则应为

let messageText = stride(from: 0, to: lineNumber, by: 1).reduce("") { "\($0)\n\($1)" }

该错误消息具有误导性,真正的问题在于关闭 类型错误,必须有两个参数。

同样可以通过

实现
let messageText = (0..<lineNumber).map(String.init).joined(separator: "\n")