100-go-mistakes/06-functions-methods/44-side-effects-named-result-parameters/main.go
2022-01-29 15:40:03 +01:00

57 lines
1 KiB
Go

package main
import (
"context"
"errors"
)
type loc struct{}
func (l loc) getCoordinates1(ctx context.Context, address string) (
lat, lng float32, err error) {
isValid := l.validateAddress(address)
if !isValid {
return 0, 0, errors.New("invalid address")
}
if ctx.Err() != nil {
return 0, 0, err
}
// Get and return coordinates
return 0, 0, nil
}
func (l loc) getCoordinates2(ctx context.Context, address string) (
lat, lng float32, err error) {
isValid := l.validateAddress(address)
if !isValid {
return 0, 0, errors.New("invalid address")
}
if err := ctx.Err(); err != nil {
return 0, 0, err
}
// Get and return coordinates
return 0, 0, nil
}
func (l loc) getCoordinates3(ctx context.Context, address string) (
lat, lng float32, err error) {
isValid := l.validateAddress(address)
if !isValid {
return 0, 0, errors.New("invalid address")
}
if err = ctx.Err(); err != nil {
return
}
// Get and return coordinates
return 0, 0, nil
}
func (l loc) validateAddress(address string) bool {
return true
}