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

前端之家收集整理的这篇文章主要介绍了数组 – 如何在Swift中将数组拆分成两半?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我如何拆分一副牌?我有一个阵列和一个随机卡经销商,但不知道如何拆分甲板.

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

您可以进行扩展,以便它可以返回两个数组的数组,使用Ints,Strings等:
  1. extension Array {
  2. func split() -> [[Element]] {
  3. let ct = self.count
  4. let half = ct / 2
  5. let leftSplit = self[0 ..< half]
  6. let rightSplit = self[half ..< ct]
  7. return [Array(leftSplit),Array(rightSplit)]
  8. }
  9. }
  10.  
  11. let deck = ["J","Q","K","A"]
  12. let nums = [0,1,2,3,4]
  13.  
  14. deck.split() // [["J","Q"],["K","A"]]
  15. nums.split() // [[0,1],[2,4]]

但返回一个命名元组甚至更好,因为它强制执行这样一个事实:你期望正好两个数组:

  1. extension Array {
  2. func split() -> (left: [Element],right: [Element]) {
  3. let ct = self.count
  4. let half = ct / 2
  5. let leftSplit = self[0 ..< half]
  6. let rightSplit = self[half ..< ct]
  7. return (left: Array(leftSplit),right: Array(rightSplit))
  8. }
  9. }
  10.  
  11. let deck = ["J","A"]
  12.  
  13. let splitDeck = deck.split()
  14. print(splitDeck.left) // ["J","Q"]
  15. print(splitDeck.right) // ["K","A"]

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

猜你在找的Swift相关文章