Как преднамеренно завершить работу в playground?

#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, одновременно выдавая сообщение об ошибке.