如何快速访问作为数组成员的结构成员
Posted
技术标签:
【中文标题】如何快速访问作为数组成员的结构成员【英文标题】:how to access a member of struct that is a member of array in swift 【发布时间】:2021-07-12 23:07:54 【问题描述】:我有一个名为 items1 的数组,它的成员是一个结构 Team1,有 2 个成员 id:UUID() 和 round:Int 我想创建一个函数来计算数组的 round 成员的总和。谁能帮我理解我在下面的代码中做错了什么:
import Foundation
struct vrb
static var items1 = [
Team1(id: UUID(), round: 14),
Team1(id: UUID(), round: 20),
Team1(id: UUID(), round: 24),
]
static var total1: Int = 0
func Total() -> Int
var sum = vrb.items1[round.reduce(0, +)]
struct Team1: Identifiable
var id: UUID
var round: Int
【问题讨论】:
【参考方案1】:你有点接近。您正在寻找的是:
func total() -> Int
vrb.items1.map(\.round).reduce(0, +)
将items1
的每个元素映射(“转换”)到它的.round
值,然后将它们相加。
(请注意,函数、方法和变量应该有一个前导小写字母,而像结构这样的类型应该有一个前导大写字母。这使得其他 Swift 开发人员更容易理解您的代码。)
【讨论】:
最后一个问题...如何在第一个 struct vrb 中调用函数? 我不明白这个问题。这里实际上没有“struct vrb”。您已经创建了一个静态变量。这只是创建了一个具有命名空间的全局变量。在这种情况下,您的意思是“内部”并不清楚。 对不起,我对 swift 和编程有点陌生,而且我是自学成才的,所以有点不清楚......我想说除非你这样做,否则该功能将无法工作调用它,我希望该函数进行该计算并稍后在视图中显示它 我不知道如何回答这个问题。这取决于您如何使用 VRB,以及您尝试使用它做什么。我怀疑你在这里做了太多static
的事情(这是一个更高级的工具;如果你刚刚开始,只有极少数情况下需要static
)。我建议打开一个新问题来解释您要做什么。
我不知道我是如何开始使用静态的,但它以某种方式工作......在我的脑海中使用了静态,所以你可以在该结构之外使用这些变量......我很确定它是不是它的工作,但它以某种方式起作用!我真的是 swiftui 新手,这只是我的第二个或第三个项目,但我觉得我正在向前迈进……谢谢你帮助我以上是关于如何快速访问作为数组成员的结构成员的主要内容,如果未能解决你的问题,请参考以下文章