【问题标题】:How do I access the not-the-first elements of an array in Swift?如何在 Swift 中访问数组的非第一个元素?
【发布时间】:2014-11-18 14:32:06
【问题描述】:

Swift 的 Array 有一个 first 函数,它返回数组的第一个元素(如果数组为空,则返回 nil。)

是否有一个内置函数可以返回数组中没有第一个元素的剩余部分?

【问题讨论】:

  • removeAtIndex: 怎么样?弹出第一个项目,你就完成了。或者来一片arr[1..<arr.count]
  • 无用的无评论投票是没有帮助的。 @matt removeAtIndex 是否修改原始数组? slice 可能是我正在寻找的东西,但它有点尴尬 - 期望一种具有广受吹捧的功能特性的新语言内置它并不是不合理的。
  • 文档回答了这些问题;你不用问我!

标签: arrays swift tail cdr


【解决方案1】:

有一种方法可以帮助您获得所需的内容:

func dropFirst<Seq : Sliceable>(s: Seq) -> Seq.SubSlice

这样使用:

let a = [1, 2, 3, 4, 5, 6, 7, 18, 9, 10]

let b = dropFirst(a) // [2, 3, 4, 5, 6, 7, 18, 9, 10]

【讨论】:

  • 在 Swift 3.0 中,Array 有自己的dropFirst 函数,简单来说:let b = a.dropFirst()
【解决方案2】:

Swift 2.2、3+ 的正确答案:

let restOfArray = Array(array.dropFirst())

Swift 3+ 更新:

正如 @leanne 在下面的 cmets 中指出的那样,现在看来这是可能的:

let restOfArray = array.dropFirst()

【讨论】:

  • 或:let restOfArray = originalArray.dropFirst()
  • 以前是不可能的,我很高兴它已经修复了!我稍后会更新答案:)
猜你喜欢
  • 1970-01-01
  • 2020-09-06
  • 2015-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
相关资源
最近更新 更多