go-by-test/hello.go

55 lines
948 B
Go

package main
import (
"fmt"
)
const (
english = "English"
spanish = "Spanish"
)
var (
helloPrefixMap map[string]string
defaultWorldMap map[string]string
)
func initDefaults() {
initPrefixMap()
initWorldMap()
}
func initPrefixMap() {
helloPrefixMap = make(map[string]string)
helloPrefixMap[english] = "Hello "
helloPrefixMap[spanish] = "Hola "
}
func initWorldMap() {
defaultWorldMap = make(map[string]string)
defaultWorldMap[english] = "world"
defaultWorldMap[spanish] = "Mundo"
}
func getDefaultWorldByLanguage(language string) string {
return defaultWorldMap[language]
}
func getHelloPrefixByLanguage(language string) string {
return helloPrefixMap[language]
}
func Hello(name, language string) string {
prefix := getHelloPrefixByLanguage(language)
if name == "" {
return prefix + getDefaultWorldByLanguage(language)
}
return prefix + name
}
func main() {
initDefaults()
fmt.Println(Hello("Mary", "English"))
}