Próbując dowiedzieć się jechać z samouczka teraz i mieć ładny pytanie podstawowe:Idź plastry - pojemność/długość?
func main() {
a := make([]int, 5)
// [0,0,0,0,0] len=5 cap=5
b := make([]int, 0, 5)
// [] len=0 cap=5
c := b[:2]
// [0,0] len=2 cap=5
d := c[2:5]
// [0,0,0] len=3 cap=3
}
Dlaczego c
wyglądać [0,0]
i mają długość 2? b
początkowo nie był zerowany, a więc []
. Czy ustawienie c
na b[:2]
wyzeruje dwa pierwsze elementy?
Ponadto, dlaczego jest pojemność d
3? Bardzo zdezorientowany.
Z góry dziękuję.
może się okazać przydatny następujący artykuł: https://blog.golang.org/ plasterki – kostya
Ostatnie pytanie: pojemność, to liczba elementów między pierwszym elementem, do którego można uzyskać dostęp, a ostatnim elementem tablicy. Pierwszy element, do którego dostęp ma "d", to drugi element w podstawowej macierzy, a więc pojemność wynosi 3. – Akavall
Prawdopodobny duplikat [Zmniejszanie pojemności plasterka] (http://stackoverflow.com/questions/43294449/decreasing-slice-capacity) –