【发布时间】:2013-12-23 20:25:29
【问题描述】:
我有一个程序正在获取一个数组并对其进行改组,一旦完成,它将从改组的数组中打印出第一个值。一旦它打印出我想要显示的值,就会显示“按返回继续”消息。该消息将一直存在,直到用户按下返回,然后它将从混洗后的数组中获取下一个值。
我有一个脚本可以很好地处理第一个值,但是当我按下回车键后,它只会在我的终端中创建空行。
这是我的例子:
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"time"
)
func main() {
users := make(map[int]string)
users[0] = "Mike"
users[1] = "Paul"
users[2] = "Steve"
users[3] = "Lawrence"
users[4] = "Stephen"
users[5] = "James"
getNextSpeaker(users)
}
func getNextSpeaker(users map[int]string) {
numUsers := len(users)
list := randList(1, numUsers)
for _, element := range list {
fmt.Println(users[element-1])
pressAnyKey()
}
}
func randList(min, max int) []int {
if max < min {
min, max = max, min
}
length := max - min + 1
t0 := time.Now()
rand.Seed(int64(t0.Nanosecond()))
list := rand.Perm(length)
for index, _ := range list {
list[index] += min
}
return list
}
func pressAnyKey() string {
fmt.Println("Press Return To Continue...")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('.')
if err != nil {
panic(err)
}
return input
}
终端输出:
$ go run src/RandomMeetingSpeaker/meeting.go
Paul
Press Return To Continue...
<empty line...>
<empty line...>
<empty line...>
<empty line...>
<empty line...>
etc etc
【问题讨论】:
标签: go