gpt4 book ai didi

ios - 添加自定义数组SwiftUI的元素

转载 作者:行者123 更新时间:2023-12-01 21:27:28 27 4
gpt4 key购买 nike

所以我有一个 Dice 的结构有一些附加的属性。我希望能够将它们全部加在一起,这样我就有了一个干净的值(value)。这是结构:

struct Dice: Identifiable, Hashable {
var id = UUID()
var displayValue: String
var initialValue: Int
var endingValue: Int

mutating func roll() {
let randomInt = Int.random(in: initialValue..<endingValue)
displayValue = "\(randomInt)"
print("Initial: \(initialValue), EndingValue: \(endingValue), Display: \(displayValue)")
}
}
它们存储在此处的数组中: @State var viewArray: [Dice] = []然后在这里显示在 ForEach 中:
ForEach(0..<viewArray.count, id: \.self) { index in
DiceView(dice: viewArray[index])
.onTapGesture {
self.viewArray.remove(at: index)
withAnimation(.spring()) {

}
}
}
我想做的是捕获 displayValue viewArray 中的每一项并将它们加在一起。这样做的最佳方法是什么?我假设我需要根据 displayValue 的属性创建某种数组然后将该数组加在一起,但我还没有遇到过。

最佳答案

如果我理解正确,您可以尝试 map + reduce .
假设 displayValueInt 类型(正如您在评论中提到的):

var viewArray: [Dice] = ...
let sum = viewArray.map(\.displayValue).reduce(0, +)

假设 displayValueString 类型您需要将其转换为 Int第一的:
var viewArray: [Dice] = ...
let sum = viewArray.map(\.displayValue).compactMap(Int.init).reduce(0, +)

关于ios - 添加自定义数组SwiftUI的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63318780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com