reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println("Hello",text)
如何检查用户是否输入了空值以及将代码放在哪里?注意 - 我已经尝试检查长度 = 0
和 = ""
但是,它们似乎不起作用。
请建议另一种方法。谢谢!
最佳答案
bufio.Reader.ReadString()
返回一个字符串
,它也包含定界符,在本例中为换行符\n
。
如果用户没有输入任何东西只是按下了 Enter 键,ReadString()
的返回值将会是 "\n"
,因此您必须将结果与 "\n"
进行比较以检查是否为空输入:
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, err := reader.ReadString('\n')
if err != nil {
panic(err) // Don't forget to check and handle returned errors!
}
if text == "\n" {
fmt.Println("No input!")
} else {
fmt.Println("Hello", text)
}
更好的选择是使用 strings.TrimSpace()
它删除了前导和尾随的空白字符(包括换行符;如果有人输入 2 个空格并按 Enter,它不是一个有意义的名称,此解决方案也会将其过滤掉)。如果您之前调用了 strings.TrimSpace()
,则可以与空字符串 ""
进行比较:
text = strings.TrimSpace(text)
if text == "" {
fmt.Println("No input!")
} else {
fmt.Println("Hello", text)
}
关于string - 如何检查用户是否在 Go 中输入了空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43490148/