我怎样才能定义这个 Stack 结构?

How can I make this Stack struct define?

我想正确地构建这个 Stack 结构。

如何定义“topItem”?

在“newstack”上方显示是否正确?

    struct Stack {
    var Items:[String] = []



    mutating func push (item:String){
        Items += [item]
    }

    mutating func pop() -> String {
        return Items.removeLast()
    }

    var topItem =`enter code here`

    }

var newStack = Stack()

newStack.push("HistoryListController")
newStack.push("HistoryDetailViewController")
newStack.push("HistoryTimelineViewController")
newStack.push("HistoryChartViewController")

newStack.Items


if let topVC = newStack.topItem {
    print("Top View Controller is \(topVC)")
    //HistoryChartViewController
}

newStack.pop()

if let topVC = newStack.topItem {
    print("Top View Controller is \(topVC)")
    //HistoryTimelineViewController
}

我是 Swift 的新手。 这是我的第一个代码

首先,items应该是小写的。其次,不清楚你想要什么topItem到return。如果你想要最新的对象,你可以这样实现:

struct Stack {
    var items = [String]()

    mutating func push (item:String){
        items += [item]
    }

    mutating func pop() -> String {
        let result = items[0]
        items.removeLast()
        return result
    }

    var topItem : String? {
        return items.last
    }

}

var newStack = Stack()

newStack.push("HistoryListController")
newStack.push("HistoryDetailViewController")
newStack.push("HistoryTimelineViewController")
newStack.push("HistoryChartViewController")

newStack.topItem // "HistoryChartViewController"

newStack.items

如果您想要第一个对象,请将其更改为return items.first