加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 如何在Swift中将数组拆分成两半?

发布时间:2020-12-14 05:28:28 所属栏目:百科 来源:网络整理
导读:我如何拆分一副牌?我有一个阵列和一个随机卡经销商,但不知道如何拆分甲板. 谢谢大家的帮助!我现在有一个工作卡应用程序,确实遇到了其他问题,但他们很快就解决了. 您可以进行扩展,以便它可以返回两个数组的数组,使用Ints,Strings等: extension Array { fun
我如何拆分一副牌?我有一个阵列和一个随机卡经销商,但不知道如何拆分甲板.

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

您可以进行扩展,以便它可以返回两个数组的数组,使用Ints,Strings等:
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,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","A"]

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

注意:获得第一个正确答案的是Andrei和Qbyte,我只是添加信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读