3

プッシュ操作とポップ操作で LIFO スタック コンテナーを使用する必要がありますが、containerパッケージにはありません。すべてのプログラマーがその場しのぎに書くことになっているのでしょうか、それとも他のデータ構造をスタックとして使用する方法がありますか (Python のリストのように)?

4

3 に答える 3

9

Go や標準ライブラリには、組み込みのスタック型はありません。ただし、Push および Pop メソッドをスライスに簡単に追加できます (Python のリストの既存のメソッドとは異なります)。

type Stack []YourType

func (s *Stack) Push(v YourType) {
    *s = append(*s, v)
}

func (s *Stack) Pop() YourType {
    ret := (*s)[len(*s)-1]
    *s = (*s)[0:len(*s)-1]
    return ret
}

かなり簡単

于 2013-07-02T20:18:38.373 に答える
1

containerstdlib にパッケージがありません。ただし、LIFO は単なるスタックであり、スライスなどで簡単にモデル化できます。したがって、stdlib LIFO コンテナーはありません。

于 2013-07-02T20:17:47.860 に答える