gpt4 book ai didi

arrays - 如何在 Swift 中将数组分成两半?

转载 作者:IT王子 更新时间:2023-10-29 05:28:23 26 4
gpt4 key购买 nike

如何拆分一副纸牌?我制作了一个数组和一个随机的发牌者,但不知道如何拆分牌组。

感谢大家的帮助!我现在有一个工作卡应用程序,确实遇到了其他问题,但很快就解决了。

最佳答案

你可以做一个扩展,这样它就可以返回一个包含两个数组的数组,使用整数、字符串等:

extension Array {
func split() -> [[Element]] {
let ct = self.count
let half = ct / 2
let leftSplit = self[0 ..< half]
let rightSplit = self[half ..< ct]
return [Array(leftSplit), Array(rightSplit)]
}
}

let deck = ["J", "Q", "K", "A"]
let nums = [0, 1, 2, 3, 4]

deck.split() // [["J", "Q"], ["K", "A"]]
nums.split() // [[0, 1], [2, 3, 4]]

但是返回一个命名的元组更好,因为它强制执行了一个事实,即您期望恰好有两个数组作为结果:

extension Array {
func split() -> (left: [Element], right: [Element]) {
let ct = self.count
let half = ct / 2
let leftSplit = self[0 ..< half]
let rightSplit = self[half ..< ct]
return (left: Array(leftSplit), right: Array(rightSplit))
}
}

let deck = ["J", "Q", "K", "A"]

let splitDeck = deck.split()
print(splitDeck.left) // ["J", "Q"]
print(splitDeck.right) // ["K", "A"]

注意:感谢 Andrei 和 Qbyte 给出了第一个正确答案,我只是添加信息。

关于arrays - 如何在 Swift 中将数组分成两半?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32074136/

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