0Pricing
Go Academy · Lekcja

Stałe i iota

Definiowanie stałych i używanie iota do tworzenia wyliczeń

Stałe i iota to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 3 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 są stałe

Stała przechowuje wartość, która nie zmienia się w czasie działania programu.

  • Jest deklarowana za pomocą const
  • Musi dać się obliczyć podczas kompilacji
  • Może być typowana lub nietypowana
  • Dozwolone są literały napisowe, logiczne, liczbowe i typu rune

Stałe typowane i bez typu

Stałe bez typu mają większą precyzję i są bardziej elastyczne:

  • const Pi = 3.14159 — nietypowana stała zmiennoprzecinkowa, dostosowuje się do kontekstu
  • const Pi float64 = 3.14159 — typowana stała float64
  • Nietypowanych stałych całkowitych można używać z dowolnym typem całkowitym

Wyrażenia stałe

Stałe można obliczać na podstawie innych stałych podczas kompilacji:

const (
    KB = 1024
    MB = 1024 * KB
    GB = 1024 * MB
)

iota: wartości zwiększane automatycznie

iota to wbudowany licznik, który resetuje się do 0 w każdym bloku const i zwiększa się o 1 dla każdej stałej w tym bloku.

const (
    Sunday = iota  // 0
    Monday          // 1
    Tuesday         // 2
    Wednesday       // 3
)

iota z wyrażeniami

Połączenie iota z wyrażeniami pozwala tworzyć rozbudowane wyliczenia:

const (
    _  = iota             // skip 0
    KB = 1 << (10 * iota) // 1024
    MB                     // 1048576
    GB                     // 1073741824
)

Stałe napisowe

Stałe napisowe to niezmienne wartości napisowe znane podczas kompilacji:

const (
    AppName    = "GoApp"
    AppVersion = "1.0.0"
    Greeting   = "Hello, " + AppName
)

Stałe logiczne

true i false to wstępnie zadeklarowane nietypowane stałe logiczne w Go. Można definiować własne stałe typu bool na potrzeby flag funkcji:

const (
    EnableMetrics = true
    DebugMode     = false
)

Stałe a zmienne

Najważniejsze różnice:

  • Stałe są niezmienne — przypisanie po deklaracji powoduje błąd kompilacji
  • Stałe nie mogą używać wyrażeń, które nie są stałymi (np. wywołań funkcji)
  • Stałe są wydajniejsze — kompilator może wstawiać je bezpośrednio w kod
  • Stałych należy używać dla magicznych liczb, aby zwiększyć czytelność

Typy wyliczeniowe z iota

Typy wyliczeniowe bezpieczne pod względem typów można tworzyć, łącząc zdefiniowany typ z iota:

type Direction int

const (
    North Direction = iota
    East
    South
    West
)

Stringer dla czytelności typów wyliczeniowych

Należy zaimplementować interfejs Stringer dla typu wyliczeniowego, aby podczas wypisywania pojawiały się czytelne dla człowieka nazwy zamiast surowych liczb całkowitych. Narzędzie stringer może automatycznie wygenerować ten kod.

Wzorzec maski bitowej iota

Połączenie iota z przesunięciami bitowymi tworzy zestawy flag:

type Permission uint

const (
    Read    Permission = 1 << iota // 1
    Write                          // 2
    Execute                        // 4
)

func main() {
    access := Read | Write // 3
    _ = access
}

Szybkie sprawdzenie

Od jakiej wartości zaczyna działanie iota w każdym nowym bloku const?

Podsumowanie: stałe i iota

Wiesz już, jak działają stałe w Go:

  • const deklaruje niezmienne wartości czasu kompilacji
  • Stałe bez typu są elastyczne i zapewniają wysoką precyzję
  • iota zwiększa się automatycznie w bloku const, zaczynając od 0
  • Połączenie iota z wyrażeniami umożliwia obsługę rozmiarów plików, flag bitowych i typów wyliczeniowych
  • Bezpieczne pod względem typów wyliczenia można tworzyć za pomocą zdefiniowanego typu i iota

Dalej: jawne konwersje typów i aliasy typów.

Często zadawane pytania

Czy lekcja „Stałe i iota” jest bezpłatna?

Tak — pełny tekst „Stałe i iota” 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 „Stałe i iota”?

Definiowanie stałych i używanie iota do tworzenia wyliczeń Ć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 3 z 4.

Ile czasu zajmuje lekcja „Stałe i iota”?

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. Deklarowanie zmiennych w Go
  2. Wbudowane typy języka Go
  3. Stałe i iota
  4. Konwersje typów w Go
← Powrót do Go Academy