谁能看到为什么此开关不起作用?
func main() { reader := bufio.NewReader(os.Stdin) text, _ := reader.ReadString('\n') fmt.Print(text) switch text { case "a": fmt.Print("A\n") case "b": fmt.Print("B\n") case "c": fmt.Print("C\n") default: fmt.Print("DEFAULT\n") } }
在此语句中,始终返回默认值,但是在对switch表达式进行硬编码时,switch块会按预期工作。查看ReadString()函数代码,它返回一个字符串,因此我看不到任何原因导致我的示例不起作用。
难道我做错了什么?!
您的文本包含两个字节:fmt.Print(len(text))是2和fmt.Print(len("a"))是1。
fmt.Print(len(text))
fmt.Print(len("a"))
您第二个符号是不可见的,您可以尝试使用将其删除text = strings.TrimSpace(text)。
text = strings.TrimSpace(text)