如何检查用户是否在Go中输入了空值?

时间:2017-04-19 08:16:12

标签: string go file-io null

reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println("Hello",text)

如何检查用户是否输入了空值以及我在何处放置代码?注意 - 我们已经尝试检查= 0= " "的长度,但它们似乎无法正常工作。

请建议另一种方法。谢谢!

1 个答案:

答案 0 :(得分:6)

bufio.Reader.ReadString()会返回string,其中包含分隔符,在这种情况下为换行符\n

如果用户没有输入任何内容只需按 Enter 键,ReadString()的返回值将为"\n",因此您必须将结果与{{ 1}}检查空输入:

"\n"

更好的替代方法是使用strings.TrimSpace()删除前导和尾随空格字符(包含换行符;如果有人输入2个空格并按 Enter ,这个解决方案也过滤掉了)。如果您事先调用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()