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 kontekstuconst 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:
constdeklaruje niezmienne wartości czasu kompilacji- Stałe bez typu są elastyczne i zapewniają wysoką precyzję
iotazwię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.