Wbudowane typy języka Go
int, float64, string, bool i ich wartości zerowe
Wbudowane typy języka Go to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 2 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.
Przegląd systemu typów Go
Go oferuje bogaty zestaw wbudowanych typów uporządkowanych w kategorie:
- Logiczny:
bool - Całkowity:
int,int8,int16,int32,int64oraz warianty bez znaku - Zmiennoprzecinkowy:
float32,float64 - Napisowy:
string - Zespolony:
complex64,complex128
Typy całkowite
Go udostępnia zależne od platformy typy całkowite oraz typy o stałym rozmiarze:
int/uint— rozmiar zależny od platformy (32 lub 64 bity)int8…int64— stała szerokość w bitachbyte— alias typuuint8rune— alias typuint32, reprezentuje punkt kodowy Unicode
Do ogólnych zastosowań należy używać int, chyba że potrzebna jest określona szerokość.
float64 i float32
Typy zmiennoprzecinkowe są zgodne ze standardem IEEE 754:
package main
func main() {
var f32 float32 = 3.14
var f64 float64 = 3.141592653589793
ratio := f64 / 2.0 // float64 inferred
_ = f32
_ = ratio
}Typ string
Napisy w Go to niezmienne sekwencje bajtów zakodowane w UTF-8:
- W podwójnych cudzysłowach:
"Hello"— obsługują sekwencje ucieczki - W odwrotnych cudzysłowach:
`raw string`— bez przetwarzania znaków ucieczki, mogą obejmować wiele wierszy len(s)zwraca liczbę bajtów, a nie znaków- Aby uzyskać runy, należy iterować po znakach za pomocą
range
Typ bool
Typ bool ma dwie wartości: true i false.
- Wartością zerową jest
false - Operatory logiczne:
&&,||,! - Operatory porównania zwracają wartość bool:
==,!=,<,> - Go nie konwertuje niejawnie liczb całkowitych na wartości bool (w przeciwieństwie do C)
Podsumowanie wartości zerowych
Każdy typ ma precyzyjnie określoną wartość zerową:
int, wszystkie typy numeryczne →0float64→0.0string→""bool→false*T, slice, map, chan, func →nil
Wartości zerowe zwiększają bezpieczeństwo kodu Go — nigdy nie odczytuje się niezdefiniowanych danych z pamięci.
Literały liczbowe
Go obsługuje wiele formatów literałów liczbowych:
package main
func main() {
dec := 1_000_000 // digit separators
hex := 0xFF
oct := 0o777
bin := 0b1010
sci := 1.5e3 // 1500.0
_ = dec; _ = hex; _ = oct; _ = bin; _ = sci
}Rozmiary i zakresy typów
Znajomość rozmiarów typów pomaga zapobiegać błędom przepełnienia:
int8: od -128 do 127uint8: od 0 do 255int16: od -32768 do 32767int32: około ±2,1 miliardaint64: około ±9,2 kwintyliona
W celu uzyskania dokładnych wartości granicznych należy używać stałej math.MaxInt64 i podobnych stałych z pakietu math.
rune i byte
rune i byte to aliasy typów o znaczeniu semantycznym:
byte=uint8— używany dla surowych danych binarnych/ASCIIrune=int32— używany dla punktów kodowych Unicode
Podczas iterowania po napisie za pomocą range Go zwraca wartości rune — idealne do pracy z wielobajtowymi znakami UTF-8, takimi jak emoji.
Wybór właściwego typu
Wskazówki dotyczące wyboru typów numerycznych:
- Domyślnie należy używać
intdla liczników i indeksów - Należy używać
float64do ogólnych obliczeń zmiennoprzecinkowych - Należy używać
int64/uint64dla identyfikatorów, znaczników czasu i dużych liczników int32należy stosować tylko podczas korzystania z interfejsów API, które go wymagają- Należy unikać
float32, chyba że pracuje się z grafiką lub danymi, dla których istotne jest ograniczenie zajmowanego miejsca
Szybkie sprawdzenie
Jaka jest wartość zerowa zmiennej typu string w Go?
Podsumowanie: wbudowane typy
Wbudowane typy Go zapewniają solidne podstawy:
- Rodzina typów całkowitych:
int,int64,byte,rune - Typy zmiennoprzecinkowe: preferowany jest
float64 stringto niezmienna sekwencja bajtów UTF-8boolz wartościamitrue/false- Każdy typ ma wartość zerową — bez niespodzianek
Dalej: stałe i potężny licznik iota.
Zadanie praktyczne
Proszę przeprowadzić eksperyment: zadeklarować zmienną typu rune przechowującą literę 'A' oraz zmienną typu byte przechowującą wartość 65. Należy wypisać obie wartości — powinny dać tę samą wartość liczbową. Następnie proszę spróbować iterować po krótkim napisie zawierającym emoji, aby zobaczyć wartości rune w działaniu.
Często zadawane pytania
Czy lekcja „Wbudowane typy języka Go” jest bezpłatna?
Tak — pełny tekst „Wbudowane typy języka Go” 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 „Wbudowane typy języka Go”?
int, float64, string, bool i ich wartości zerowe Ć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 2 z 4.
Ile czasu zajmuje lekcja „Wbudowane typy języka Go”?
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
- Deklarowanie zmiennych w Go
- Wbudowane typy języka Go
- Stałe i iota
- Konwersje typów w Go