Back to questions
Senior
4
func(d *Data)GetViews(key int, chechDay time.Time) (int, int, err) { d.mu.Lock() defer d.mu.Unlock() infoStr, ok := d.st[key] if !ok { return 0, fmt.Errorf("article not found") } return (infoStr.day, infoStr.count, nil) }
Companies where asked
А7
Answer from AI
sobes.tech AI
В представленном коде есть несколько ошибок и неточностей:
- Сигнатура функции некорректна: возвращаемые значения указаны как
(int, int, err), гдеerrдолжен быть типаerror. - В
return 0, fmt.Errorf("article not found")возвращается два значения, а ожидается три. - В
return (infoStr.day, infoStr.count, nil)скобки лишние, иinfoStr.dayвозможно не совпадает с типомchechDay.
Исправленный вариант функции может выглядеть так:
func (d *Data) GetViews(key int, checkDay time.Time) (int, int, error) {
d.mu.Lock()
defer d.mu.Unlock()
infoStr, ok := d.st[key]
if !ok {
return 0, 0, fmt.Errorf("article not found")
}
// Предполагаем, что infoStr.day имеет тип time.Time
if !infoStr.day.Equal(checkDay) {
return 0, 0, fmt.Errorf("data for the specified day not found")
}
return infoStr.dayViews, infoStr.count, nil
}
Здесь:
infoStr.dayViews— количество просмотров за день,infoStr.count— общее количество просмотров,- функция возвращает ошибку, если ключ не найден или дата не совпадает.
Также важно, что мьютекс mu защищает доступ к карте st для потокобезопасности.