0Pricing
Go Academy · Lekcja

Tablice: kolekcje o stałej długości

Literały tablic, indeksowanie i długość

Tablice: kolekcje o stałej długości to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.

Czym jest tablica

Tablica w języku Go to sekwencja elementów tego samego typu o stałej długości. Długość jest częścią typu: [3]int i [4]int to różne typy.

  • Tablice są typami wartościowymi — przypisanie kopiuje całą tablicę
  • Długość jest zawsze znana w czasie kompilacji
  • Rzadko używa się ich bezpośrednio; w większości zadań preferowane są wycinki

Literały tablic

Tablice można deklarować i inicjalizować za pomocą literału:

package main

func main() {
    primes := [5]int{2, 3, 5, 7, 11}
    names  := [3]string{"Alice", "Bob", "Carol"}
    flags  := [4]bool{true, false, true, false}
    _ = primes; _ = names; _ = flags
}

Długość i indeksowanie tablicy

Do uzyskania długości należy użyć len(), a do odczytywania i zapisywania elementów — indeksowania zaczynającego się od zera:

package main
import "fmt"

func main() {
    scores := [3]int{90, 85, 92}
    fmt.Println(len(scores)) // 3
    fmt.Println(scores[0])   // 90
    scores[1] = 100
    fmt.Println(scores)      // [90 100 92]
}

Wielokropek w literałach tablic

Należy użyć [...], aby kompilator sam policzył elementy:

package main
import "fmt"

func main() {
    days := [...]string{"Mon","Tue","Wed","Thu","Fri"}
    fmt.Println(len(days)) // 5
}

Tablice są typami wartościowymi

Podczas przypisywania tablicy lub przekazywania jej do funkcji Go kopiuje całą tablicę. Modyfikacja kopii nie wpływa na oryginał:

package main
import "fmt"

func main() {
    a := [3]int{1, 2, 3}
    b := a     // full copy
    b[0] = 99
    fmt.Println(a) // [1 2 3] — unchanged
    fmt.Println(b) // [99 2 3]
}

Porównywanie tablic

Tablice tego samego typu i o tej samej długości można porównywać za pomocą == i !=:

package main
import "fmt"

func main() {
    x := [3]int{1, 2, 3}
    y := [3]int{1, 2, 3}
    z := [3]int{1, 2, 4}
    fmt.Println(x == y) // true
    fmt.Println(x == z) // false
}

Tablice dwuwymiarowe

Tablice można zagnieżdżać, aby tworzyć siatki lub macierze:

package main
import "fmt"

func main() {
    grid := [2][3]int{
        {1, 2, 3},
        {4, 5, 6},
    }
    fmt.Println(grid[1][2]) // 6
}

Iterowanie po tablicy

Do iterowania można użyć klasycznej pętli for lub range:

package main
import "fmt"

func main() {
    nums := [4]int{10, 20, 30, 40}
    for i, v := range nums {
        fmt.Printf("[%d] = %d\n", i, v)
    }
}

Tablice a wycinki

Najważniejsze różnice:

  • Tablica: stały rozmiar, typ wartościowy, rozmiar jest częścią typu
  • Wycinek: dynamiczny rozmiar, typ referencyjny, oparty na tablicy
  • W praktyce należy używać wycinków, chyba że potrzebny jest stały rozmiar znany w czasie kompilacji (np. skrót SHA-256 [32]byte)

Częste pułapki

Należy uważać na:

  • Indeks poza zakresem — Go wywołuje panikę w czasie działania, jeśli i >= len(arr)
  • Przekazywanie dużych tablic do funkcji powoduje kosztowne kopiowanie — należy zamiast tego użyć wskaźników lub wycinków
  • Zapominanie, że [3]int i [4]int to typy niezgodne

Szybkie sprawdzenie

Jaka jest długość wyrażenia [...]string{"a","b","c"}?

Podsumowanie: tablice

Najważniejsze informacje:

  • Tablice mają stałą długość znaną w czasie kompilacji, która jest częścią typu
  • Są typami wartościowymi — przypisanie kopiuje wszystkie elementy
  • Należy używać len() i indeksowania zaczynającego się od zera
  • W większości zastosowań kolekcji należy preferować wycinki

Zadanie praktyczne

Należy zadeklarować tablicę 5 liczb całkowitych, przypisać wartość 100 do trzeciego elementu, a następnie wypisać tablicę za pomocą range.

Często zadawane pytania

Czy lekcja „Tablice: kolekcje o stałej długości” jest bezpłatna?

Tak — pełny tekst „Tablice: kolekcje o stałej długości” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Tablice: kolekcje o stałej długości”?

Literały tablic, indeksowanie i długość Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Go Academy?

Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Tablice: kolekcje o stałej długości”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?

Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tablice: kolekcje o stałej długości
  2. Slice: listy dynamiczne
  3. Mapy: magazyny klucz-wartość
  4. Iterowanie po kolekcjach za pomocą range
← Powrót do Go Academy