Что не так с этим кодом Go?

Здравствуйте! 

Возможно, у вас возникли проблемы с выводом результатов работы кода на Go из учебника. Вместо результатов вы видите только ваши введенные данные. Может быть проблема в выводе информации из карты (map). Пожалуйста, ознакомьтесь со следующим вопросом: "Как можно исправить код на Go для правильного отображения результатов в программе из учебника?" 

Ссылка на оригинальный исходный код: [ссылка на GitHub](https://github.com/adonovan/gopl.io/blob/master/ch1/dup1/main.go).

Спасибо!
  • 29 мая 2024 г. 8:21
Ответы на вопрос 2
Проблема в этом коде Go состоит в том, что он не выводит результаты подсчета повторяющихся строк ввода. Вместо этого, он сохраняет введенные строки в карту (map) и просто выводит эту карту после завершения ввода. 

Для исправления этого, можно добавить код для вывода количества повторяющихся строк вместо их содержимого. Например, можно изменить цикл по карте (map) на что-то вроде:

```go
for line, count := range counts {
    if count > 1 {
        fmt.Printf("%d\t%s\n", count, line)
    }
}
```

Этот код будет выводить только строки, которые встречаются более одного раза, вместе с их количеством повторений.
Код же выводит на экран те строки, которые были написаны вами более 1 раза. А в приведенном скриншоте вы каждое число по одному разу только ввели. 

Проверил у себя, все работает:
$ go run main.go
hello
Hi
John
hello
John
Paul
John
^D
2	hello
3	John


hello я написал два раза, поэтому там цифра 2, а John написал 3 раза. Остальные слова только один раз, поэтому их нет в выводе
Похожие вопросы