#golang #golang_faq
Как в Golang прервать выполнение кода? Аналог exit()/die() в PHP. Есть func Index(w http.ResponseWriter, r *http.Request) { parametr=0 if parametr!="1" { fmt.Fprintln(w, "Параметр=1") } fmt.Fprintln(w, "текст после проверки") //Я хочу это не отображать,если parametr!="1" } Нужно, если параметр не 1, то выйти из функции (но не из приложения вообще). Можно, конечно, поставить else, но везде тогда делать обёртки? Или можно как-то выйти из функции?
Ответы
Ответ 1
выход func os.Exit(code int) Exit causes the current program to exit with the given status code. Conventionally, code zero indicates success, non-zero an error. The program terminates immediately; deferred functions are not run. мой вольный перевод: Exit вызывает завершение текущей программы с указанным кодом завершения. принято считать, что код 0 означает успешное завершение, а не-нулевой код означает ошибку. программа завершается немедленно, отложенные функции не вызываются. возврат return [ ExpressionList ] A "return" statement in a function F terminates the execution of F, and optionally provides one or more result values. Any functions deferred by F are executed before F returns to its caller. мой вольный перевод: оператор "return" в функции "F" прерывает выполнение "F" и (опционально) возвращает один или более результатов. любые функции, «отложенные» функцией "F", выполняются перед тем, как управление вернётся в вызывавшую "F" функцию. примеры: func noResult() { return } func simpleF() int { return 2 } func complexF1() (re float64, im float64) { return -7.0, -4.0 }Ответ 2
Видимо вам нужно просто возвращать значение через return: import ( "fmt" "net/http" ) func Index(w http.ResponseWriter, r *http.Request) { parametr = 0 if parametr != "1" { fmt.Fprintln(w, "Параметр=1") return } fmt.Fprintln(w, "текст после проверки") //Я хочу это не отображать,если parametr!="1" } //Нужно,если параметр не 1
Комментариев нет:
Отправить комментарий