gpt4 book ai didi

ios - 如何将具有多个输出的函数的输出分配给 Swift 中的不同变量?

转载 作者:行者123 更新时间:2023-11-28 14:15:32 26 4
gpt4 key购买 nike

例如:

func createArray(_ oneArray: [Int],_ twoArray: [Int],_ threeArray: [Int],_ one: Int,_ two: Int,_ three: Int) -> (oneArrayNew: [Int], twoArrayNew: [Int], threeArrayNew: [Int]){

// ...
// ... *random code*
// ...
// ...

return (oneArrayNew, twoArrayNew, threeArrayNew)

}

如果我想使用第一次调用的输出再次调用此函数 (oneArrayNew, twoArrayNew, threeArrayNew) 作为现在使用相同函数的输入,我该怎么做?

最佳答案

您可以将元组分配给一个变量,例如 result,然后访问每个成员:

let result = createArray(...
let result2 = createArray(result.oneArrayNew, result.twoArrayNew, ...

或者您可以将调用结果分配给元组以创建三个新变量:

let (a1, a2, a3) = createArray(...
let result2 = createArray(a1, a2, a3, ...

甚至重用现有变量:

var (a1, a2, a3) = createArray(...
(a1, a2, a3) = createArray(a1, a2, a3, ...

完整示例:

我通过从每个数组中删除前 N 项来实现创建新数组的函数。

在 Playground 中试试这个:

func createArray(_ oneArray: [Int],_ twoArray: [Int],_ threeArray: [Int],_ one: Int,_ two: Int,_ three: Int) -> (oneArrayNew: [Int], twoArrayNew: [Int], threeArrayNew: [Int]){

let oneArrayNew = Array(oneArray.dropFirst(one))
let twoArrayNew = Array(twoArray.dropFirst(two))
let threeArrayNew = Array(threeArray.dropFirst(three))

return (oneArrayNew, twoArrayNew, threeArrayNew)
}

let result = createArray([1,2,3,4], [5,6,7,8], [9,10,11,12], 1, 2, 3)
print(result.oneArrayNew) // [2, 3, 4]
print(result.twoArrayNew) // [7, 8]
print(result.threeArrayNew) // [12]

var (a1, a2, a3) = createArray([1,2,3,4], [5,6,7,8], [9,10,11,12], 2, 2, 2)
print(a1) // [3, 4]
print(a2) // [7, 8]
print(a3) // [11, 12]

(a1, a2, a3) = createArray(a1, a2, a3, 1, 1, 1)
print(a1) // [4]
print(a2) // [8]
print(a3) // [12]

关于ios - 如何将具有多个输出的函数的输出分配给 Swift 中的不同变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52214224/

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