Swift Academy · Lekcja

Typy całkowite i ich zakresy

Poznanie typów Int, UInt, Int8..Int64 oraz ich ograniczeń.

Lekcja 1 z 413 kroki

Typy całkowite i ich zakresy to bezpłatna lekcja Swift 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 Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Typy całkowite w Swift

Swift udostępnia kilka typów całkowitych. Int jest typem domyślnym i odpowiada rozmiarowi słowa platformy, zwykle 64 bitom. Dostępne są również typy o stałej szerokości, takie jak Int8, Int16, Int32 i Int64.

let count: Int = 42
print(count)
print(type(of: count))

Typy ze znakiem a typy bez znaku

Typy ze znakiem (Int) mogą przechowywać wartości ujemne i dodatnie. Typy bez znaku (UInt) przechowują tylko wartości zerowe i dodatnie, dzięki czemu oferują większy zakres wartości dodatnich.

let signed: Int = -10
let unsigned: UInt = 10
print(signed, unsigned)

Rozmiary całkowitych typów o stałej szerokości

Liczba w nazwie typu określa szerokość w bitach. Int8 używa 8 bitów, Int16 używa 16 bitów i tak dalej. Większa liczba bitów oznacza szerszy zakres wartości.

print(MemoryLayout<Int8>.size)
print(MemoryLayout<Int16>.size)
print(MemoryLayout<Int64>.size)

Właściwości min i max

Każdy typ całkowity udostępnia właściwości .min i .max, które zwracają jego najmniejszą i największą reprezentowalną wartość.

print(Int8.min, Int8.max)
print(UInt8.min, UInt8.max)

Zakres typu Int8

Typ Int8 ze znakiem obejmuje wartości od -128 do 127. Ta asymetria wynika z konieczności zarezerwowania jednej wartości na zero po stronie nieujemnej.

print("Int8 range:", Int8.min, "to", Int8.max)

Zakres typu UInt8

Typ UInt8 bez znaku obejmuje wartości od 0 do 255. Ponieważ nie jest potrzebny bit znaku, wszystkie 8 bitów reprezentuje wartość.

print("UInt8 range:", UInt8.min, "to", UInt8.max)

Większe zakresy liczb całkowitych

Zakresy typów Int16, Int32 i Int64 rosną wykładniczo. Zakres typu Int32 już przekracza dwa miliardy wartości bezwzględnej.

print("Int16 max:", Int16.max)
print("Int32 max:", Int32.max)
print("Int64 max:", Int64.max)

Platformowy typ Int

Na platformach 64-bitowych Int jest identyczny z Int64. W ogólnym kodzie należy preferować zwykły Int, chyba że potrzebna jest konkretna szerokość typu.

print("Int.max:", Int.max)
print("Same as Int64:", Int.max == Int64.max)

Wybór typu całkowitego

Domyślnie należy używać Int. Po typy o stałej szerokości warto sięgać podczas pracy z formatami binarnymi, sprzętem lub danymi, dla których istotne jest zużycie pamięci.

let pixelChannel: UInt8 = 200
let fileOffset: Int64 = 5_000_000_000
print(pixelChannel, fileOffset)

Wykrywanie zakresu za pomocą min i max

W czasie działania programu można użyć .min i .max, aby sprawdzić, czy wartość mieści się w docelowym typie przed konwersją.

let big = 300
let fits = big >= Int(UInt8.min) && big <= Int(UInt8.max)
print("Fits in UInt8:", fits)

Przykład podsumowujący zakresy liczb całkowitych

Każdy dodatkowy bit w przybliżeniu podwaja zakres. Ten program pokazuje maksymalną wartość kolejnych typów bez znaku o coraz większej szerokości.

print(UInt8.max)
print(UInt16.max)
print(UInt32.max)

Szybkie sprawdzenie

Proszę przypomnieć sobie dokładny zakres 8-bitowej liczby całkowitej ze znakiem.

Podsumowanie: typy całkowite i zakresy

Poznano zasadę, że Int jest domyślnym typem o rozmiarze zależnym od platformy, typy ze znakiem obejmują wartości ujemne, podczas gdy typy bez znaku (UInt) zaczynają się od zera, oraz że typy o stałej szerokości od Int8 do Int64 mają określone granice .min i .max, które rosną wraz z szerokością w bitach.

print("Defaults and bounds:")
print(Int.max)
print(Int8.min, Int8.max)
print(UInt8.max)
Bezpłatny start

Ucz się Swift dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
122
Lekcje
409

Często zadawane pytania

Czy lekcja „Typy całkowite i ich zakresy” jest bezpłatna?

Tak — pełny tekst „Typy całkowite i ich zakresy” 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 Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Typy całkowite i ich zakresy”?

Poznanie typów Int, UInt, Int8..Int64 oraz ich ograniczeń. Ćwiczysz Swift 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ąć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift 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 „Typy całkowite i ich zakresy”?

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 Swift Academy?

Tak. Każda lekcja Swift 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. Typy całkowite i ich zakresy
  2. Liczby zmiennoprzecinkowe: Double a Float
  3. Jawne konwersje liczbowe
  4. Literały liczbowe i podkreślenia
← Powrót do Swift Academy