Функция зависит от предыдущего Swift - PullRequest
1 голос
/ 23 апреля 2019

У меня есть три функции, каждая из которых зависит от предыдущей.

let dbPath = createDBPath()
let db =  openDatabase(dbPath!)
readQuestionsFromDB(db!)

Первая строка создает путь к базе данных (если не дает фатальной ошибки, так как нет смысла продолжать выполнение, если у меня нет доступа к структуре файла). Вторая строка открывает базу данных, используя путь (здесь развернутый файл - все в порядке, как если бы у нас не было пути, мы в любом случае потерпели крах в этой точке). Третья строка считывает вопросы викторины из базы данных, которую нужно открыть, если у базы данных есть проблема, она также вылетает из функции, как будто мы не можем прочитать БД, что-то серьезно не так.

Каков наилучший способ структурировать это? А если - пусть пирамиду? Я разделил это на три функции, чтобы попытаться выделить функциональность для удобства чтения. Возможно, я должен передать путь db и db как свойства класса? Я не уверен ...

Ответы [ 2 ]

2 голосов
/ 23 апреля 2019

Я бы сделал это

if let dbPath = createDBPath(),
   let db = openDatabase(dbPath) {
    readQuestionsFromDB(db)
}
0 голосов
/ 23 апреля 2019

Я не вижу ничего плохого в вашем текущем коде, но если вы действительно хотите изменить эстетику вашего кода, вы можете позвонить map по дополнительным параметрам.

createDBPath().map(openDatabase).map(readQuestionsFromDB)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...