Выведет 4. cap(s2) = cap(s) - low = 5 - 1 = 4. Slice s2 начинается с индекса 1 underlying array и имеет доступ до конца capacity. Это значит append(s2, ...) может перезаписать s[2], s[3], s[4]. Для ограничения: s2 := s[1:2:2] — full slice expression, cap будет 1. Это защищает от случайной перезаписи.
Что выведет: s := make([]int, 0, 5); s = append(s, 1,2,3); s2 := s[1:2]; fmt.Println(cap(s2))?
Middle
147 просмотровAFK Offer AI
Что не так: type Config struct { mu sync.Mutex; data map[string]string }; cfg := Config{data: make(map[string]string)}; cfg2 := cfg?