From 173a1a39ec38f4e2feb69119fc75e3cea3eb27f5 Mon Sep 17 00:00:00 2001 From: Andrew Hurley Date: Sat, 12 Nov 2022 15:21:15 +0800 Subject: [PATCH] random --- greetings.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/greetings.go b/greetings.go index 5291ffd..e44f92d 100644 --- a/greetings.go +++ b/greetings.go @@ -2,6 +2,8 @@ package greetings import "fmt" import "errors" +import "math/rand" +import "time" // Hello returns a greeting for the named person. func Hello(name string) (string,error) { @@ -10,8 +12,27 @@ func Hello(name string) (string,error) { return "", errors.New("empty name") } // Return a greeting that embeds the name in a message. - message := fmt.Sprintf("Hi, %v. Welcome!", name) + message := fmt.Sprintf(randomFormat(), name) + # message := fmt.Sprintf("Hi, %v. Welcome!", name) return message, nil } +// init sets initial values for variables used in the function. +func init() { + rand.Seed(time.Now().UnixNano()) +} +// randomFormat returns one of a set of greeting messages. The returned +// message is selected at random. +func randomFormat() string { + // A slice of message formats. + formats := []string{ + "Hi, %v. Welcome!", + "Great to see you, %v!", + "Hail, %v! Well met!", + } + + // Return a randomly selected message format by specifying + // a random index for the slice of formats. + return formats[rand.Intn(len(formats))] +}