我正在爲Swift3中的某個更改而苦苦掙扎。早些時候,他們將...
和..<
作爲Range
,但現在他們有很多新的「子範圍」。我想有一個功能同時適用於兩個範圍的變體。Swift3中的範圍
struct Test {
var data = [1,2,3,4,5]
subscript(r:Range<Int>) -> [Int] {
return Array(data[r])
}
}
let t = Test()
print(t[0...1]) // fails because now this is a ClosedRange
print(t[0..<2])
我想有一個
subscript(r:TakesAnyRange<Int>) -> [Int] {
這可能是你正在尋找的:http://stackoverflow.com/a/40377303/1187415。 –
@MartinR正確:-)我喜歡它,當編譯器設計師用一個至少需要博士學位的人替換一個簡單的構造時: - | –
@MartinR現在,由於這是一個簡化的問題,我發現對於'下標'你的解決方案不起作用。你有另一個指針嗎? –