从swift 3迁移到swift 4
我正在做一个从Swift 3迁移到Swift 4的项目。 除了这个问题,我解决了所有的问题。首先,我不理解这个代码:从swift 3迁移到swift 4,swift,Swift,我正在做一个从Swift 3迁移到Swift 4的项目。 除了这个问题,我解决了所有的问题。首先,我不理解这个代码: let messageText = stride(from: 0, to: lineNumber, by: 1).reduce("") { "\n\($0.0)" } 这两个版本之间的Reduce函数已更改。因此,我想将其重新写入Swift 4。假设其目的是创建一个包含来自 0(包括)到行号(排除),由换行符分隔,则应为 let messageText = stride(fro
let messageText = stride(from: 0, to: lineNumber, by: 1).reduce("") { "\n\($0.0)" }
这两个版本之间的Reduce函数已更改。因此,我想将其重新写入Swift 4。假设其目的是创建一个包含来自 0(包括)到
行号
(排除),由换行符分隔,则应为
let messageText = stride(from: 0, to: lineNumber, by: 1).reduce("") { "\($0)\n\($1)" }
错误消息具有误导性,真正的问题是关闭
具有错误的类型,它必须包含两个参数
同样的道理也可以通过
let messageText = (0..<lineNumber).map(String.init).joined(separator: "\n")
让messageText=(0..谢谢Martin,The“(0..@Clem166:好吧,我假设行号
是一个整数–然后代码工作:我在发布答案之前测试了它。如果你真的需要它作为CGFloat,那么第一个版本应该仍然工作。或者使用第二个版本与(0..工作!谢谢;)