有没有更清洁的方式来获取
Swift中最后两个数组的项目?一般来说,我尝试避免使用这种方法,因为它很容易被一个一个的索引. (在这个例子中使用Swift 1.2)
// Swift -- slices are kind of a hassle? let oneArray = ["uno"] let twoArray = ["uno","dos"] let threeArray = ["uno","dos","tres"] func getLastTwo(array: [String]) -> [String] { if array.count <= 1 { return array } else { let slice: ArraySlice<String> = array[array.endIndex-2..<array.endIndex] var lastTwo: Array<String> = Array(slice) return lastTwo } } getLastTwo(oneArray) // ["uno"] getLastTwo(twoArray) // ["uno","dos"] getLastTwo(threeArray) // ["dos","tres"]
我希望更接近Python的方便.
## Python -- very convenient slices myList = ["uno","tres"] print myList[-2:] # ["dos","tres"]
myList[-2:]
是的,我有一个增强请求,要求负号索引符号,我建议你也提交一个.
但是,你不应该使自己比你更难.内置的全局后缀功能完全符合您的要求:
let oneArray = ["uno"] let twoArray = ["uno","tres"] let arr1 = suffix(oneArray,2) // ["uno"] let arr2 = suffix(twoArray,2) // ["uno","dos"] let arr3 = suffix(threeArray,2) // ["dos","tres"]
结果是一个切片,但如果需要,您可以将其强制转换为数组.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。