swift泛型下标

//: FROM  https://www.anuomob.com

import UIKit
protocol Container{
    associatedtype Item
    mutating func append(_ item:Item)
    var count:Int{get}
    subscript(i:Int)->Item {get}
    

    
}

extension Container{
    subscript<Indices:Sequence>(indices:Indices)->[Item] where Indices.Iterator.Element == Int{
        var result=[Item]()
        for index in indices{
            result.append(self[index])
        }
      return result
    }
}
class IntStack: Container{
        var items = [Int]()
    subscript(i: Int) -> Int {
   return items[i]
    }
    
    func append(_ item: Int) {
        items.append(item)
    }
    
    var count: Int  {
        return items.count
    }

    
    typealias Item = Int


    
    
}
var intStack = IntStack()

intStack.append(1)
intStack.append(2)
print(intStack[[0,1]])

结果

[1, 2]

猜你喜欢

转载自blog.csdn.net/mp624183768/article/details/108313148