Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как в Golang прервать выполнение кода?

#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

Комментариев нет:

Отправить комментарий