100-go-mistakes/2-code-project-organization/1-variable-shadowing/main.go
2021-12-27 15:56:17 +01:00

75 lines
1 KiB
Go

package main
import (
"log"
"net/http"
)
func listing1() error {
var client *http.Client
if tracing {
client, err := createClientWithTracing()
if err != nil {
return err
}
log.Println(client)
} else {
client, err := createDefaultClient()
if err != nil {
return err
}
log.Println(client)
}
_ = client
return nil
}
func listing2() error {
var client *http.Client
if tracing {
c, err := createClientWithTracing()
if err != nil {
return err
}
client = c
} else {
c, err := createDefaultClient()
if err != nil {
return err
}
client = c
}
_ = client
return nil
}
func listing3() error {
var client *http.Client
var err error
if tracing {
client, err = createClientWithTracing()
if err != nil {
return err
}
} else {
client, err = createDefaultClient()
if err != nil {
return err
}
}
_ = client
return nil
}
var tracing bool
func createClientWithTracing() (*http.Client, error) {
return nil, nil
}
func createDefaultClient() (*http.Client, error) {
return nil, nil
}