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