先看代码: ``` func testBufio2() { fmt.Println("3.从键盘读取输入开始") inputReader = bufio.NewReader(os.Stdin) fmt.Printf("Please enter your name:") input1, err := inputReader.ReadString('\n') if err != nil { fmt.Println("There were errors reading,exiting program.") return } fmt.Printf("Your name is %s", input1) fmt.Println("strings.ContainsAny(input1):", strings.ContainsAny(input1, "\n")) //去掉换行符之后的串 newstr := strings.Replace(input1, "\n", "", -1) fmt.Println("1.我不理解为什么不加ln会变成如下,首先是顺序不对,其次是少了x位,后来发现是好像被覆盖了,不知是vscode的问题还是golang的replace的问题(这里是我的疑问???):") fmt.Print(newstr) fmt.Println("xxx") fmt.Print(newstr) fmt.Println("xx") fmt.Println("2.加ln会变成如下(这是正常的):") fmt.Println(newstr) fmt.Println("sss") fmt.Println("3.我不用replace了,直接输出,这种情况下没有问题,因为输入的内容中有一个换行符,所以会换行(这是正常的):") fmt.Print(input1) fmt.Println("ss") } ``` 输出结果: ``` 3.从键盘读取输入开始 Please enter your name:12345 Your name is 12345 strings.ContainsAny(input1): true 1.我不理解为什么不加ln会变成如下,首先是顺序不对,其次是少了x位,后来发现是好像被覆盖了,不知是vscode的问题还是golang的replace的问题(这里是我的疑问???): xxx45 xx345 2.加ln会变成如下(这是正常的): 12345 sss 3.我不用replace了,直接输出,这种情况下没有问题,因为输入的内容中有一个换行符,所以会换行(这是正常的): 12345 ss ``` 开发工具,我用的是vscode.不知道是vscode的问题,还是golang的问题。很异,不知道有人遇到过这种问题吗,我是新手,才接触go.希望有人能给解答一下。