我是Go语法的新手,如果用户没有输入任何内容,只是尝试传递错误...
[编辑]如果用户没有输入任何内容,我希望以下功能停止运行,并打印日志。我的if required && answer == ""
声明似乎无法正常工作;您必须输入一个值。"当用户没有输入任何内容时不记录。
func QAR(q string, r string, required bool) string {
reader := bufio.NewReader(os.Stdin)
// Print the question
fmt.Printf(q)
answer, _ := reader.ReadString('\n')
// If the answer is empty, return a log
if required && answer == "" {
log.Fatal("You must enter a value.")
// Can I just use return to block it?
return
}
// Print the response with the answer
if r != "" {
fmt.Println(r, answer)
}
return answer
}
答案 0 :(得分:1)
go中的典型模式是返回多个值,如果发生了一个,则最后一个是错误。所以你的函数签名可能如下所示:
func QAR(q string, r string, required bool) (string, error)
这样的返回语句:
return "", fmt.Errorf("user provided no input")
// ...
return answer, nil
<强> [编辑] 强>
请注意,bufio.Reader.ReadString(...)
包含分隔符,因此您可能需要检查是否answer == "\n"
。