两个问题。
1...我正在编写一个需要用户在命令行上提供参数的小游戏。命令行条目看起来像“go run game.go 8”。os.Args[0] 是程序运行(game.go),os.Args[1] 是输入的整数(在本例中为 8)。我写
s := os.Args[1]
maxLetters, err := strconv.Atoi(s)
if err != nil {
// handle error
fmt.Println(err)
os.Exit(2)
}
它采用字符串“8”,将其转换为整数,并允许我将其设置为游戏中的最大数字。但是,他们可以选择不输入数字。在这种情况下,我的程序中的最大数量默认为 7。我的问题是,如果 os.Args[1] 存在与否,我如何检查 golang?如果存在,则将 max 设置为用户的号码。如果不存在,则设置 max = 7。
2...在游戏过程中,需要有用户输入。“?” 标志帮助,“(不正确的猜测词)”条目让他们再试一次,“(正确的猜测词)”条目给他们下一个问题,只需按回车键(空白行)即可退出游戏。我用
var answer string
fmt.Scanf("%s", &answer)
获得他们的入场券。问题是无法识别“”条目或空行条目。按回车键不会改变 answer 的值,因此 answer 保持不变。,并且游戏继续以他们之前的条目作为答案值。显然这是一个大问题,并且在按下返回键时,答案值需要更改为 "" 或某种形式。
有什么建议么?谢谢你的帮助。