Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
func main() {
var s []int
s = append(s, 1, 2, 3)
a := s[len(s)-1]
s = s[:len(s)-1]
b := s[len(s)-1]
fmt.Println(a, b)
}3 2
- Ждать
1 2: стек берёт с того конца, куда клал, поэтому первым выходит последний добавленный3, а за ним2. - Ждать
3 3:s = s[:len(s)-1]укорачиваетsна один элемент, поэтому следующийs[len(s)-1]— это2.
- Что случится, если так извлечь элемент из пустого среза?
- Как превратить этот стек в очередь?