🧰 Канал про эффективную разработку. Полезные сервисы, книги, интересные сообщения из чатов сообщества iOS-разработчиков Swiftme.ru.
⚠️Наши чаты
https://t.me/usovswift
⚠️Ищем по тегам
#инструменты
#вопросы
#книга
#продуктивность
#здоровьеразработчика
#стартап
#пишемхорошийкод
#xcode
#swiftcore
#мероприятия
⚠️Наши чаты
https://t.me/usovswift
⚠️Ищем по тегам
#инструменты
#вопросы
#книга
#продуктивность
#здоровьеразработчика
#стартап
#пишемхорошийкод
#xcode
#swiftcore
#мероприятия
Telegram
JustSwift - сообщество iOS разработчиков
Чат для разработчиков под iOS, macOS на Swift от автора книг Василия Усова
По всем вопросам @dobbywankenoby
По всем вопросам @dobbywankenoby
♥️ Практики, используемые в ядре Swift
Я люблю копать исходный код Swift. Конечно же, как нормальный программист, почти ничего там не понимаю, но от этого интерес только возрастает😂.
Самый сок в том, что периодически я встречаю там интересные реализации довольно обыденных задач, типовое решение которых так и не сформировалось у меня в голове. Например вам нужно вывести в виде строки все элементы массива, разделив их при этом запятыми. Но запятые должны находиться логически верно, не в конце списка, не в начале, а только между элементами.
Каждый раз я изобретаю велосипед и:
- то добавляю запятую перед каждым элементов, и в конце удаляю первый символ;
- то наоборот добавляю ее в конце, и потом удаляю последний символ;
- то контролирую номер элемента и добалвяю только там, где это требуется.
Задача тривиальная и никак не уровня "серьезного" разработчика. Но каждый раз я все делаю новым способом. Причем решение данного вопроса изменяется еще и в зависимости от языка, на котором я пишу код.
Сегодня в процессе изучения исходного кода типа
Запятая добавляется перед каждым элементом, начиная со второго.
P.S. И что самое интересное, в данном куске кода используется
❓А как вы решаете такой тривиальный вопрос в своем коде?
#пишемхорошийкод #swiftcore
Я люблю копать исходный код 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