我如何拆分一副牌?我有一个阵列和一个随机卡经销商,但不知道如何拆分甲板.
谢谢大家的帮助!我现在有一个工作卡应用程序,确实遇到了其他问题,但他们很快就解决了.
您可以进行扩展,以便它可以返回两个数组的数组,使用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,我只是添加信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。