How do I avoid having to write the else
statement twice in nested if/else statements?
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
}
I'll avoid using if which includes an optional statement:
if statement; condition {
}
and using simple if with:
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)
}