170 похожих чатов

Func KeywordsChecker(word string, amount int, positives, negatives []string) (bool, error)

{
hmap := make(map[string]int8, len(positives)+len(negatives))
for _, word := range positives {
hmap[word] = 1
}
for _, word := range negatives {
hmap[word] = -1
}
word = strings.ToLower(word)
words := strings.Split(word, " ")
var matched int
for _, word := range words {
if n, ok := hmap[word]; ok {
matched += int(n)
}
}
return matched >= amount, nil
} Можно как-то улучшить эту функцию?

7 ответов

4 просмотра

Если эта функция вызывается много раз для разных слов, но с одинаковыми negatives и positives, то решение кривовато, map каждый раз заполняется. Ну и single responsibility страдает. Оно не только считает, но и данные для подсчёта формирует.

Ну и особый котёл в аду за использование локальных переменных с тем же именем, что и параметр функции.

что значит KeywordsChecker? во-первых название функции не должно быть существительным, оно должно быть императивным (команда) например append (добавь), make (сделай), delete, recover, print из названия не понятно что эта функция делает и зачем она нужна

Roman Sharkov
что значит KeywordsChecker? во-первых название фу...

Не всегда команда, тут больше похоже на IsWordPositive. Результат boolean.

Igor Shekalev
Не всегда команда, тут больше похоже на IsWordPosi...

не всегда конечно, примеры тому new, real, len, cap

Igor Shekalev
Не всегда команда, тут больше похоже на IsWordPosi...

но KeywordsChecker или даже CheckKeywords это вообще не о чём, совершенно не понятно зачем оно нужно

Похожие вопросы

Обсуждают сегодня

А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
19
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта