#swift-playground
#swift-игровая площадка
Вопрос:
На игровой площадке у меня есть функция, которая возвращает массив значений, которые вычисляются из чисел, указанных в вызывающем операторе. Функция проверяет числа, чтобы подтвердить, что они действительны, и если они недействительны, я вывожу поясняющий комментарий, а затем я хочу остановиться — я не хочу забегать вперед и допускать ошибки из-за неверных данных. Есть ли способ остановиться? Я перепробовал очевидные возможности (exit (), stop (), end () и т.д.), Но ничего из того, что я пробовал, не распознается.
Я могу придумать обходные пути. Я спрашиваю, как запрограммировать остановку? Я знаю, что playground может остановиться, потому что он останавливается после последнего утверждения. Если бы у него было ‘goto’, я мог бы перейти к последнему утверждению, но ‘goto’ также не распознается.
Ответ №1:
Насколько я понимаю, вы, возможно, захотите спроектировать это по-другому:
// Within your playground main file: Contents.swift
startPlayground()
// Possibly within another file in the Sources directly:
func startPlayground() {
let input = receiveInputFromYourSource()
guard verifyInput(input) == true else {
showErrorMessageToUser()
return
}
}
Эта структура позволяет вам использовать return
желаемым образом «функцию выхода». Это, вероятно, самый элегантный способ добиться того, чего вы хотите сделать. Структуры, подобные «goto», не поддерживаются swift, и вы всегда должны искать альтернативу.
Сказав это, есть особый случай, который может быть полезен время от времени на игровых площадках Swift:
assertionFailure(message: "Input not correct")
Эта инструкция завершает выполнение playground, одновременно выдавая сообщение об ошибке.