Это потому, что вы, вероятно, работаете в Windows.
Фактический ввод, который вы вводите с клавиатуры, не thing\n
, а thing\r\n
Так что, когда вы делаете fmt.Println(input[:len(input)-1] + "\"")
, это толькоусекает последнюю \n
и оставляет \r
.
Таким образом, терминал печатает thing
, затем достигает \r
, который возвращает каретку в начало строки, а затем вы печатаете двойную кавычку.Но теперь каретка находится на первой позиции, и она фактически перезаписывает первый символ строки, оставляя вас с "hing