Создать гибкий API

Аргументы по умолчанию - это здорово! В этой статье объясняется, что это такое и почему они великолепны. Давай, посмотри!

Сложность: Начинающий | Легко | Нормальный | Сложно
Эта статья была разработана с использованием Xcode 11.5 и Swift 5.2.4

Предпосылки:

Функции

Простой пример

Представьте, что у нас есть функция, которая выводит на консоль имя и сообщение. Эта функция выглядит следующим образом:

Это дает нам возможность: наверняка почти в каждом случае у нас будет сообщение «Hello, World» (хорошо, с натяжкой, но потерпите меня) - поэтому мы хотим, чтобы «Hello, World» было значением по умолчанию функции. Это возможно? Оказывается, да, да, это так.

Создание параметра по умолчанию

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

Это означает, что приведенный выше код выводит следующие две строки: Kyrone Hello, World Tarik Hello, to you too!

Итак, если у вас есть общедоступный API (вы можете прочитать о Контроль доступа, чтобы подумать об этом)

Инициализация (класс и структура)

Инициализация также может выиграть от параметров по умолчанию.

Поскольку мы всегда должны предполагать, что людям 21 год, если мы не используем их возраст (Примечание: это не относится к детям, хотя следующее Class не отражает этого), если пользователь API не указывает возраст, мы устанавливаем его на 21.

Это дает следующий результат: Chau 21

То же самое можно применить и к Struct объектам!

Значит, можно использовать параметры по умолчанию…

В любом месте в списке параметров. Может использоваться для 0 или более параметров. Для предоставления пользователям API доступа к функциям; некоторые могут использовать «более простую» версию того же API, что снижает сложность.

Вывод

Вы можете использовать параметры по умолчанию, чтобы упростить использование общедоступных API для вашего клиента. Однако вы должны сделать доступ как можно более легким, и вы должны сделать это, сделав свой код как можно более читабельным, поскольку это упростит создание и поддержку вашего кода в будущем.

Если у вас есть вопросы, комментарии или предложения, пишите мне в Twitter.