我試圖在Swift
中實現Stack結構並使其符合Generator
和Sequence
。從Swift擴展中訪問存儲的結構屬性
class Stack<T> {
var items:Array<T>
var depth : Int{ return items.count}
init(){
items = Array<T>()
}
func push(elm:T){
items += elm
}
func pop()->T?{
if depth > 0{
return items.removeLast()
}else{
return nil
}
}
}
當試圖使其符合Generator
時,我遇到了麻煩。我試圖通過擴展添加一個嵌套的類型,當我得到一個錯誤這就是:
extension Stack{
struct StackGenerator: Generator{
var current = 0
mutating func next() -> T?{
let rc = items[current] // Get an error here: can't access items in Stack
}
}
}
編譯器不會讓我內StackGenerator
訪問Stack.items
物業形態。這是預期的嗎?我該如何解決這個問題?
和Xcode 6 GM,你有來取代'項目+ = elm':'項目+ = [榆]'。 – 2014-09-12 14:03:05