我正在为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现在,由于这是一个简化的问题,我发现对于'下标'你的解决方案不起作用。你有另一个指针吗? –