44 lines
636 B
Go
44 lines
636 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"math/rand"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func intSeq() func() int {
|
||
|
i := 0
|
||
|
return func() int {
|
||
|
i++
|
||
|
return i
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func words() func() string {
|
||
|
wordlist := [11]string{1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six",
|
||
|
7: "seven", 8: "eight", 9: "nine", 10: "ten"}
|
||
|
|
||
|
return func() string {
|
||
|
rand.Seed(time.Now().UnixNano())
|
||
|
min := 0
|
||
|
max := 10
|
||
|
return wordlist[rand.Intn(max-min+1)+min]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
|
||
|
nextInt := intSeq()
|
||
|
|
||
|
fmt.Println(nextInt())
|
||
|
fmt.Println(nextInt())
|
||
|
fmt.Println(nextInt())
|
||
|
|
||
|
newInts := intSeq()
|
||
|
fmt.Println(newInts())
|
||
|
|
||
|
newWords := words()
|
||
|
fmt.Println(newWords())
|
||
|
|
||
|
}
|