#swift
#быстрый
Вопрос:
У меня есть три функции, каждая из которых зависит от предыдущей.
let dbPath = createDBPath()
let db = openDatabase(dbPath!)
readQuestionsFromDB(db!)
Первая строка создает путь к базе данных (если нет, выдает неустранимую ошибку, так как нет смысла продолжать выполнение, если у меня нет доступа к структуре файла).
Вторая строка открывает базу данных, используя путь (здесь с развертыванием все в порядке, как будто у нас нет пути, к этому моменту мы в любом случае завершим работу).
Третья строка читает вопросы викторины из базы данных, которую необходимо открыть, если в базе данных есть проблема, она также выйдет из строя изнутри функции, как будто мы не можем прочитать базу данных, значит, что-то серьезно не так.
Каков наилучший способ структурировать это? Пирамида «если — пусть»? Я разделил это на три функции, чтобы попытаться выделить функциональность для удобства чтения. Возможно, мне следует передать db и db path в качестве свойств класса? Я не уверен…
Ответ №1:
Я бы сделал это
if let dbPath = createDBPath(),
let db = openDatabase(dbPath) {
readQuestionsFromDB(db)
}
Ответ №2:
Я не вижу ничего плохого в вашем текущем коде, но если вы действительно хотите изменить эстетику своего кода, вы можете вызвать map
опции.
createDBPath().map(openDatabase).map(readQuestionsFromDB)