Назад к вопросам
Avito
Intern
3
Что выведет программа при выполнении? package main import "fmt" func main() { s := make([]int, 0, 3) m := map[string]int{"a": 1, "b": 2} for i := 0; i < 5; i++ { s = append(s, i) } fmt.Println(len(s), cap(s)) if v, ok := m["c"]; ok { fmt.Println(v) } else { fmt.Println("нет ключа") } }
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Программа создаёт срез s с длиной 0 и ёмкостью 3, затем добавляет в него 5 элементов (0,1,2,3,4). При добавлении элементов срез автоматически расширяется, если превышается ёмкость.
После цикла:
len(s)будет 5 (число элементов)cap(s)будет 6, так как при превышении ёмкости среза она обычно удваивается (с 3 до 6)
Далее программа пытается получить значение по ключу "c" из мапы m. Такого ключа нет, поэтому ok будет false и выведется "нет ключа".
Итоговый вывод:
5 6
нет ключа