プッシュ操作とポップ操作で LIFO スタック コンテナーを使用する必要がありますが、container
パッケージにはありません。すべてのプログラマーがその場しのぎに書くことになっているのでしょうか、それとも他のデータ構造をスタックとして使用する方法がありますか (Python のリストのように)?
1755 次
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
container
stdlib にパッケージがありません。ただし、LIFO は単なるスタックであり、スライスなどで簡単にモデル化できます。したがって、stdlib LIFO コンテナーはありません。
于 2013-07-02T20:17:47.860 に答える