猿问

避免在嵌套的 if/else 中编写相同的 else 语句

如何避免else在嵌套的 if/else 语句中写两次语句?


func GetPortFromEnvironment(name string, defaultPort int32) int32 {

    var port int32

    if env := os.Getenv("SERVICE_PORT"); env != "" {

        if _port, err := strconv.ParseInt(env, 10, 32); err != nil {

            port = int32(_port)

        } else {

            port = defaultPort

        }

    } else {

        port = defaultPort

    }

    return port

}


慕神8447489
浏览 100回答 1
1回答

catspeake

我将避免使用包含可选语句的 if :if statement; condition {  }并使用简单的 if :func GetPortFromEnvironment(name string, defaultPort int32) int32 {    env := os.Getenv("SERVICE_PORT")    // no env value. return defaultPort    if env == "" {      return defaultPort    }    // there's env value.    port, err := strconv.ParseInt(env, 10, 32)    if err != nil {       // Unable to parse port. Fallback to default.       return defaultPort    }    return int32(port)}
随时随地看视频慕课网APP

相关分类

Go
我要回答