Программа должна читать файл, вычитывать все слова, считать наиболее частые и писать первые N пар слово: использований в выходной файл.
Для того чтобы сконфигурировать команду нужно использовать флаги:
-in: путь к входному файлу
-out: путь к выходному файлу
-limit: сколько пар записать в файл (если не установлено: 10)
-min-length: минимальная длина для слова (если не установлено: 5)
Сортировать слова по популярности использования, если оно равно, то лексиграфически (стандартным оператором < для строк)
Как использовать флаги в Go (https://gobyexample.com/command-line-flags, не забудьте использовать flag.Parse()
)
Как открыть файл для чтения или записи (https://metanit.com/go/tutorial/8.2.php, не забудьте после обработки ошибки написать defer file.Close()
- что это обсудим позже)
Как вычитать все из io.Reader
(io.ReadAll)
Как обрабатывать ошибки log.Fatal
Как сортировать мапу: нужно переложить все пары в слайс любого типа который вам нужен, например type result { word string, count int }
и сортировать его
Как удобно получить слова из текста: strings.Fields() Разбить текст на слова - считать, что слова состоят только из букв, а все остальное - разделитель
strings.FieldsFunc(string(content), func(r rune) bool {
return !unicode.IsLetter(r)
})
Как выполнять задание: сделать ветку files-name, например files-unspectd от main, решить добавив коммиты, сделав Pull Request и скинув мне
Как понять что все работает правильно: выполнить make run
в директории files и получить следующий ответ
reasoning: 11
science: 11
scientific: 10
based: 6
inductive: 6
method: 6
problem: 6
thinking: 6
deductive: 5
logical: 5
observation: 5
specific: 5
brain: 4
descriptive: 4
general: 4