gpt4 book ai didi

arrays - 快速数组存储数据

转载 作者:行者123 更新时间:2023-11-30 13:16:15 26 4
gpt4 key购买 nike

我创建了一个返回多个值的函数

let interestingNumbers = [   // String:Array<Int>
"Prime": [2, 3, 5, 7, 11, 23],
"Fibonacci": [1, 1, 2, 3, 5, 80],
"Square": [1, 4, 9, 16, 25],
]
func largestNum(objDictionary:[String:Array<Int>]) -> (Int,String) {
var largest = 0
var ki:String? = nil
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
ki=kind
}
}
}
return (largest , ki!)
}

print(largestNum(interestingNumbers)) //calling fuction and print

/*var ar2:[Int,String] = largestNum(interestingNumbers))

print(ar2)*/' this code have an error`

如何将函数的返回值存储在数组中

最佳答案

更新:

如果您希望两个值都位于一个数组中 ar[0]Intar[1]String ,那么你需要声明 ar2成为[Any]并在初始化时解压元组 ar2 :

let largest = largestNum(interestingNumbers)
var ar2:[Any] = [largest.0, largest.1]

print(ar2) // [80, "Fibonacci"]

如果您只是将返回值分配给 ar2并将其保留为元组,您可以使用 ar2.0 访问值和ar2.1 :

var ar2 = largestNum(interestingNumbers)
print(ar2.0) // 80
print(ar2.1) // "Fibonacci"

或者如果您更改 largestNum返回命名元组:

func largestNum(objDictionary:[String:Array<Int>]) -> (number: Int, kind: String) {
}

var ar2 = largestNum(interestingNumbers)
print(ar2.number) // 80
print(ar2.kind) // "Fibonacci"
<小时/>

原始答案:

声明你的数组ar2保存 Int 的元组对和String ,然后将返回值包装在 [] 中创建数组:

var ar2:[(Int,String)] = [largestNum(interestingNumbers)]

print(ar2) // [(80, "Fibonacci")]
<小时/>

因为元组实际上是用于临时值的,所以使用 struct 将值存储在数组中是更好的方式。 :

更改您的函数以返回 InterestingNumber :

struct InterestingNumber {
let kind: String
let number: Int
}

func largestNum(objDictionary:[String:Array<Int>]) -> InterestingNumber {
// contents omitted for brevity

return InterestingNumber(kind: ki!, number: largest)
}


let largest = largestNum(interestingNumbers)

// Define your array to hold `InterestingNumber`s:
var ar2:[InterestingNumber] = [largest]

print(ar2) // [InterestingNumber(kind: "Fibonacci", number: 80)]
<小时/>

如果您的意思是 ar2仅保存单个值,然后只需执行以下操作:

var ar2 = largestNum(interestingNumbers)

Swift 将推断类型(它是原始代码中的元组,或者使用 InterestingNumber 时的 struct

关于arrays - 快速数组存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174695/

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