0Pricing
Swift Academy · Урок

Строки и Unicode — графемы, индексы, подстроки, API

Разберитесь со строками, учитывающими Unicode: расширенными кластерами графем, String.Index, подстроками, распространёнными API (prefix/suffix/contains, split/join) и производительностью копирования при записи.

«Строки и Unicode — графемы, индексы, подстроки, API» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.

Юникод и графемы

Тип строка в Swift корректно работает с Unicode. Один видимый пользователю символ может состоять из нескольких скаляров — это расширенный кластер графем.

  • Примеры: эмодзи с оттенками кожи, буквы с диакритическими знаками
  • Подсчёт выполняется по символам, а не по байтам

Подсчёт символов

Подсчёт измеряет количество символов (кластеров графем), а не байтов.

let wave = "👋🏽"        // hand + skin tone modifier
let text = "Hi " + wave
print(text, "count =", text.count)  // counts visible characters

Индексы и навигация

Используйте индекс строки со вспомогательными средствами, такими как startIndex, index(after:), index(_:offsetBy:).

let s = "Swift"
let firstIndex = s.startIndex
let secondIndex = s.index(after: firstIndex)
print(s[firstIndex], s[secondIndex])  // S w

Подстроки

Подстроки используют общее хранилище с исходной строкой. Преобразуйте их в String(left) для длительного хранения.

let phrase = "hello.world"
let dot = phrase.firstIndex(of: ".")!
let left = phrase[..<dot]        // Substring (shares storage)
let right = phrase[phrase.index(after: dot)...]  // Substring
print(left, right)

Распространённые интерфейсы

Полезные интерфейсы: hasPrefix, hasSuffix, contains, а также split/joined.

let path = "/usr/local/bin"
print(path.hasPrefix("/usr"))      // true
print(path.hasSuffix("bin"))       // true
print(path.contains("local"))      // true

let parts = path.split(separator: "/")   // [ "", "usr", "local", "bin" ] without first slash
let joined = parts.joined(separator: "-")
print(joined)

Производительность (COW)

Производительность: строки и подстроки используют копирование при записи. Копирование выполняется быстро, пока данные не изменены. Преобразуйте подстроку в строку для длительного хранения.

Правила индексации строк

Быстрая проверка: как правильно обращаться по индексу к строке Swift?

Итоги

Итоги: строки с поддержкой Unicode используют кластеры графем. Перемещайтесь по ним с помощью индекса строки, выделяйте фрагменты как подстроки, используйте распространённые интерфейсы и помните о производительности COW.

Часто задаваемые вопросы

Урок «Строки и Unicode — графемы, индексы, подстроки, API» бесплатный?

Да — полный текст урока «Строки и Unicode — графемы, индексы, подстроки, API» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.

Чему я научусь в уроке «Строки и Unicode — графемы, индексы, подстроки, API»?

Разберитесь со строками, учитывающими Unicode: расширенными кластерами графем, String.Index, подстроками, распространёнными API (prefix/suffix/contains, split/join) и производительностью копирования… Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Строки и Unicode — графемы, индексы, подстроки, API»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Строки и Unicode — графемы, индексы, подстроки, API
  2. Распространённые API — prefix/suffix/contains, split/join
  3. Производительность — копирование при записи
← Назад к Swift Academy