是否可以容易地使数组中的第一个索引以负数而不是0开头?
如果是这样,我将如何定义以下内容,使它们从-1开始而不是0?以及我如何获得价值?
var myIntArray:[Int] = [4, 2, 1]
var myDoubleArray:[Double] = [28, 28, 14]
var myCGFloatArray:[CGFloat] = [0.14, 0.14, 0.1]
您可以为此定义一个自定义下标:
extension Array {
private var customIndexOffset: Int { return -1 }
subscript(customIndex index: Int) -> Element {
get {
return self[index - customIndexOffset]
}
set {
self[index - customIndexOffset] = newValue
}
}
}
现在myIntArray[customIndex: -1]
== myIntArray[0]
extension MutableCollection where Index == Int {
private var customIndexOffset: Int { -2 }
subscript(customIndex index: Int) -> Element {
get { self[index - customIndexOffset] }
set { self[index - customIndexOffset] = newValue }
}
}
extension Collection where Index == Int {
private var customIndexOffset: Int { -2 }
subscript(customIndex index: Int) -> Element { self[index - customIndexOffset] }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句