TGViewer
Мобильный кот Мобильный кот @ios_appdev · 2.49K subscribers
Post #73 2.5K
♥️ Практики, используемые в ядре Swift

Я люблю копать исходный код Swift. Конечно же, как нормальный программист, почти ничего там не понимаю, но от этого интерес только возрастает😂.

Самый сок в том, что периодически я встречаю там интересные реализации довольно обыденных задач, типовое решение которых так и не сформировалось у меня в голове. Например вам нужно вывести в виде строки все элементы массива, разделив их при этом запятыми. Но запятые должны находиться логически верно, не в конце списка, не в начале, а только между элементами.

Каждый раз я изобретаю велосипед и:
- то добавляю запятую перед каждым элементов, и в конце удаляю первый символ;
- то наоборот добавляю ее в конце, и потом удаляю последний символ;
- то контролирую номер элемента и добалвяю только там, где это требуется.

Задача тривиальная и никак не уровня "серьезного" разработчика. Но каждый раз я все делаю новым способом. Причем решение данного вопроса изменяется еще и в зависимости от языка, на котором я пишу код.

Сегодня в процессе изучения исходного кода типа Array и работы над разделом по массивам в моем справочнике по Swift на GitHub я наткнулся на довольно изящную реализацию данного вопроса, используемую при вызове свойства description у коллекций:

var result = ""
// ...
var first = true
for item in self {
if first {
first = false
} else {
result += ", "
}
debugPrint(item, terminator: "", to: &result)
}
// ...


Запятая добавляется перед каждым элементом, начиная со второго.

P.S. И что самое интересное, в данном куске кода используется inout - аргумент. Так что не такая уж это и плохая практика, видимо.

❓А как вы решаете такой тривиальный вопрос в своем коде?

#пишемхорошийкод #swiftcore
More from @ios_appdev
  1. Nov 30, 2025🤔 Embedded Swift в Swift 6.3 Мы уже видели, как Swift успешно захватил server-side, linux…
  2. Nov 19, 2025Когда структуры в Swift — не твои бро Один из лучших докладов на Mobius 2025 Autumn. Очень…
  3. Oct 17, 2025🍷Отличный повод выйти из техлидского запоя и запилить пятничный пост после полугода шоков…
  4. Jun 24, 2025#видеозаписи #МобильныйВторник Открываем новую видеозапись выступления: Кирилл Шумаков, Ва…
  5. Apr 16, 2025🫠 Прощай, Swift Сегодня второй рабочий день в роли Техлида. Два дня уже не программировал…
  6. Apr 16, 2025Презентация с доклада. PDF без анимаций, но для общей картины подходит отлично.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →