Conversation
6c5ee83 to
cf70c2b
Compare
cf70c2b to
d4dc1f6
Compare
| func (cache *lruCache) Clear() { | ||
| cache.mu.Lock() | ||
| defer cache.mu.Unlock() | ||
|
|
There was a problem hiding this comment.
Отличное решение по очистке кеша за О(1)!
| } | ||
|
|
||
| func (l *list) Remove(i *ListItem) { | ||
| l.len-- |
There was a problem hiding this comment.
Инкрементить/декрементить счетчик лучше после добавления/удаления элемента, чтобы избежать ситуации, когда счетчик обновился, а изменений так и не произошло.
There was a problem hiding this comment.
Для того, чтобы это было возможно реализовать, стоит завязать проверку условий ( l.len > 1 и l.len == 1) для добавления элемента в список не на текущую длину списка l.len (текущее количество элементов в кеше), а на проверку наличия элементов l.firstNode и l.lastNode
| cache.mu.Lock() | ||
| defer cache.mu.Unlock() | ||
|
|
||
| var result interface{} |
There was a problem hiding this comment.
здесь можно немного упростить код и обойтись без введения дополнительной переменной result, просто вернув nil, false если !ok
|
Здравствуйте, София! 10 из 10 |
Домашнее задание №4 «LRU-кэш»
Чек-лист студента (Что это?)
go mod tidy..syncфайл. Зачем его удалять?Критерии оценки
выталкивания из кэша редко используемых элементов) - до 3 баллов
Зачёт от 7 баллов