Символы и графемные кластеры
Узнайте, почему один Character может состоять из нескольких скалярных значений.
«Символы и графемные кластеры» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
Тип Character
В Swift тип Character представляет один воспринимаемый человеком символ. String — это коллекция таких символов.
let letter: Character = "A"
print(letter)
print(type(of: letter))Character и String
Литерал в двойных кавычках по умолчанию имеет тип String. Укажите тип Character, чтобы получить значение одного символа.
let s = "A"
let c: Character = "A"
print(type(of: s), type(of: c))Расширенные кластеры графем
В Swift Character — это расширенный кластер графем: один или несколько скаляров Unicode, которые вместе отображаются как один видимый символ.
let e: Character = "e"
print(e)
print("A Character is one visible symbol")Комбинируемые знаки
Буква с диакритическим знаком может состоять из основной буквы и комбинируемого знака, но Swift всё равно рассматривает эту пару как один Character.
let combined: Character = "e\u{301}"
print(combined)
print("Displayed as one accented e")Эмодзи как один символ
Многие эмодзи являются одиночными кластерами графем, поэтому считаются одним Character, даже если внутри используют несколько байтов.
let smiley: Character = "\u{1F600}"
print(smiley)Сложные кластеры эмодзи
Некоторые эмодзи объединяют несколько скаляров — оттенки кожи и соединители нулевой ширины — в один видимый символ, который Swift правильно считает одним Character.
let family = "\u{1F468}\u{200D}\u{1F469}\u{200D}\u{1F467}"
print("Count:", family.count)Перебор символов
С помощью for-in можно пройти по строке и посетить каждый Character по порядку.
for ch in "Hi!" {
print(ch)
}Создание String из символов
Можно создать String из массива значений Character.
let chars: [Character] = ["S", "w", "i", "f", "t"]
let word = String(chars)
print(word)Добавление символов
Используйте append, чтобы добавить Character в конец строки.
var greeting = "Hello"
greeting.append("!")
print(greeting)Сравнение символов
Значения Character можно сравнивать на равенство, что удобно при просмотре текста.
let target: Character = "x"
let found = "fox".contains { $0 == target }
print("Contains x:", found)Почему кластеры графем важны
Если рассматривать воспринимаемые пользователем символы как отдельные единицы, длина строк и индексация соответствуют тому, что люди действительно видят, в том числе для эмодзи и букв с диакритическими знаками.
let cafe = "caf\u{e9}"
print("Visible characters:", cafe.count)Быстрая проверка
Вспомните, что представляет собой Character в Swift.
Повторение: символы и кластеры графем
Вы узнали, что Character представляет один видимый символ как расширенный кластер графем, комбинируемые знаки и сложные эмодзи по-прежнему считаются одним Character, а символы можно надёжно перебирать, создавать и сравнивать.
let text = "ab\u{1F600}"
print("Characters:", text.count)
for ch in text { print(ch) }Изучай Swift с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 122
- Уроки
- 409
Часто задаваемые вопросы
Урок «Символы и графемные кластеры» бесплатный?
Да — полный текст урока «Символы и графемные кластеры» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Символы и графемные кластеры»?
Узнайте, почему один Character может состоять из нескольких скалярных значений. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Символы и графемные кластеры»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Символы и графемные кластеры
- Скалярные значения Unicode и кодовые точки
- Подсчёт и перебор символов
- Представления кодировок: utf8, utf16, unicodeScalars