SafeEqual: сравнение без паники
Прямое сравнение интерфейсов с несравнимым динамическим типом паникует. Реализуйте safeEqual: проверьте сравнимость через reflect.TypeOf(...).Comparable() и верните (eq, comparable) без паники.
Показать решение
GolangРешение
func safeEqual(a, b any) (eq bool, comparable bool) {
ta := reflect.TypeOf(a)
tb := reflect.TypeOf(b)
if ta == nil || tb == nil || !ta.Comparable() || !tb.Comparable() {
return false, false
}
return a == b, true
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн