Swift Academy · Lekcja

Znaki i klastry grafemów

Poznanie, dlaczego jeden Character może składać się z kilku skalarów.

Lekcja 1 z 413 kroki

Znaki i klastry grafemów 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.

Typ Character

W języku Swift typ Character reprezentuje pojedynczy znak czytelny dla człowieka. String jest kolekcją takich znaków.

let letter: Character = "A"
print(letter)
print(type(of: letter))

Character a String

Literał ujęty w podwójny cudzysłów jest domyślnie typu String. Aby uzyskać wartość pojedynczego znaku, należy oznaczyć typ jako Character.

let s = "A"
let c: Character = "A"
print(type(of: s), type(of: c))

Rozszerzone klastry grafemów

Element Character w języku Swift jest rozszerzonym klastrem grafemów: jednym lub większą liczbą skalarów Unicode, które razem wyświetlają się jako pojedynczy widoczny znak.

let e: Character = "e"
print(e)
print("A Character is one visible symbol")

Znaki łączące

Litera diakrytyczna może składać się z litery bazowej i znaku łączącego, a mimo to Swift nadal traktuje tę parę jako jeden element Character.

let combined: Character = "e\u{301}"
print(combined)
print("Displayed as one accented e")

Emoji jako pojedynczy znak

Wiele emoji to pojedyncze klastry grafemów, dlatego są liczone jako jeden element Character, mimo że wewnętrznie zajmują wiele bajtów.

let smiley: Character = "\u{1F600}"
print(smiley)

Złożone klastry emoji

Niektóre emoji łączą kilka skalarów, na przykład odcienie skóry i spójniki o zerowej szerokości, w jeden widoczny symbol, który Swift poprawnie liczy jako pojedynczy element Character.

let family = "\u{1F468}\u{200D}\u{1F469}\u{200D}\u{1F467}"
print("Count:", family.count)

Iterowanie po znakach

Po ciągu znaków można iterować za pomocą for-in, odwiedzając kolejno każdy element Character.

for ch in "Hi!" {
    print(ch)
}

Tworzenie String z elementów Character

Można utworzyć String z tablicy wartości Character.

let chars: [Character] = ["S", "w", "i", "f", "t"]
let word = String(chars)
print(word)

Dodawanie znaków

Użyj append, aby dodać element Character na końcu ciągu znaków.

var greeting = "Hello"
greeting.append("!")
print(greeting)

Porównywanie znaków

Wartości Character można porównywać pod kątem równości, co przydaje się podczas skanowania tekstu.

let target: Character = "x"
let found = "fox".contains { $0 == target }
print("Contains x:", found)

Dlaczego klastry grafemów mają znaczenie

Traktowanie znaków postrzeganych przez użytkownika jako pojedynczych jednostek sprawia, że długości ciągów znaków i indeksowanie odpowiadają temu, co rzeczywiście widzą użytkownicy, także w przypadku emoji i znaków diakrytycznych.

let cafe = "caf\u{e9}"
print("Visible characters:", cafe.count)

Szybkie sprawdzenie

Przypomnij sobie, co reprezentuje element Character w języku Swift.

Podsumowanie: znaki i klastry grafemów

Dowiedzieli się Państwo, że Character modeluje pojedynczy widoczny znak jako rozszerzony klaster grafemów, że znaki łączące i złożone emoji nadal są liczone jako jeden element Character, a także że można niezawodnie iterować po znakach, tworzyć je i porównywać.

let text = "ab\u{1F600}"
print("Characters:", text.count)
for ch in text { print(ch) }
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 „Znaki i klastry grafemów” jest bezpłatna?

Tak — pełny tekst „Znaki i klastry grafemów” 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 „Znaki i klastry grafemów”?

Poznanie, dlaczego jeden Character może składać się z kilku skalarów. Ć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 „Znaki i klastry grafemów”?

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. Znaki i klastry grafemów
  2. Skalary Unicode i punkty kodowe
  3. Zliczanie i iterowanie po znakach
  4. Widoki kodowania: utf8, utf16, unicodeScalars
← Powrót do Swift Academy