Arrays SWIFT如何将super.array的嵌套结构元素复制到数组变量中
抱歉,如果这已经在某个地方得到了答复,我不确定我是否在搜索中使用了正确的关键字 为了将数组传递给函数,我想将stuct数组的内容传递给变量。我的结构基本上是这样的(实际内容有点复杂) 有没有比这更合适的方法将所有TopVar的nestedVar值传递给函数Arrays SWIFT如何将super.array的嵌套结构元素复制到数组变量中,arrays,swift,struct,Arrays,Swift,Struct,抱歉,如果这已经在某个地方得到了答复,我不确定我是否在搜索中使用了正确的关键字 为了将数组传递给函数,我想将stuct数组的内容传递给变量。我的结构基本上是这样的(实际内容有点复杂) 有没有比这更合适的方法将所有TopVar的nestedVar值传递给函数 var myVar:topStruct! var myVarArray:[Int] for element in myVar.topVar { myVarArray[i] = element.nestedVar i=i+1 } r
var myVar:topStruct!
var myVarArray:[Int]
for element in myVar.topVar {
myVarArray[i] = element.nestedVar
i=i+1
}
result = myFunc(myVarArray)
或者我应该将myFunc定义为
myFunc(structPassed:topStruct!) -> Int {
var result = 1
for element in structPassed.topVar {
result += element.nestedVar
i=i+1
}
return result
}
由于我不需要nestedStruct中的其他元素(在现实生活中的代码中),我想第一种方法在内存方面稍微精简了一些不清楚您想做什么,但我正确地编写了如何填充数组:
var myVar: topStruct = topStruct(topVar: [nestedStruct(nestedVar: 1), nestedStruct(nestedVar: 2), nestedStruct(nestedVar: 3)])
var myVarArray = [Int]()
for element in myVar.topVar {
myVarArray.append(element.nestedVar)
}
以及如何返回数组中元素的总和:
func myFunc(structPassed: topStruct) -> Int {
var result = 0
for element in structPassed.topVar {
result += element.nestedVar
}
return result
}
myFunc(structPassed: myVar)
最简单的方法是使用高阶函数
map
myFunc(myVar.topVar.map {$0.nestedVar})
如果您还没有这样做过,那么现在是学习高阶函数的时候了,它们是处理集合时非常强大的工具。非常有用。将进一步研究“地图”。如果你还有时间,也许你也可以看看我的另一个(未回答的)问题:-)干杯(仍然在学习曲线的陡峭部分…)
myFunc(myVar.topVar.map {$0.nestedVar})