如何在 Swift 中合并 4 个以上的数组?
Posted
技术标签:
【中文标题】如何在 Swift 中合并 4 个以上的数组?【英文标题】:How to Combine more than 4 Arrays in Swift? 【发布时间】:2021-05-29 21:51:29 【问题描述】:我有几个单独的数组,我正在尝试组合它们。当我尝试组合超过 4 个数组时,它不会构建,只会给出错误 The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
。我已经尝试了多种不同的方式,并且确信只有当我尝试组合超过 4 个数组时才会这样做。以下是我如何组合它们:
例如,假设这些是我的数组:
var a = [1, 2, 3, 4]
var b = [4, 6, 8, 10]
var c = [2, 4, 6, 8]
var d = [3, 6, 9, 12]
var e = [1, 3, 5, 7]
然后我将它们组合起来并像这样排序:
这行得通:
(a+b+c+d).sorted $0.name < $1.name
但这不会导致构建失败:
(a+b+c+d+e).sorted $0.name < $1.name
我应该采用不同的方式来组合这些数组以支持超过 4 个的组合吗?
【问题讨论】:
在哪里你在做什么?在 SwiftUI 视图的body
中,或者...?
最好创建Chain5
并提交以包含在Algorithms
中。 github.com/apple/swift-algorithms/blob/main/Guides/Chain.md
数字没有名字。无法重现该问题。
@West1 我在 SwiftUI 视图的主体中执行此操作,是的。
【参考方案1】:
以下内容适用于我在 macos 11.4、xcode 12.5、target ios 14.5 和 macCatalyst 11.3 上。 向我们展示您是如何使用代码的。
import SwiftUI
@main
struct TestErrorApp: App
var body: some Scene
WindowGroup
ContentView()
struct ContentView: View
var a = [1, 2, 3, 4]
var b = [4, 6, 8, 10]
var c = [2, 4, 6, 8]
var d = [3, 6, 9, 12]
var e = [1, 3, 5, 7]
var f = [4, 6, 8, 10]
var g = [1, 3, 5, 7]
var h = [2, 4, 6, 8]
var body: some View
Text("array combination").onAppear
let arr = (a+b+c+d+e+f+g+h).sorted $0 < $1
print("----> arr: \(arr)")
【讨论】:
以上是关于如何在 Swift 中合并 4 个以上的数组?的主要内容,如果未能解决你的问题,请参考以下文章