Я знаю, что Go не будет иметь генериков в будущем, и есть рекомендации по их замене другими конструкциями. Но с моим примером ниже я застрял.
func P(any interface{}, err error) (interface{}) {
if err != nil {
panic("error: "+ err.Error())
}
return any
}
Как вы могли догадаться, я пытаюсь просто терпеть неудачу при любой ошибке и хочу поместить P()
только в любую функцию, возвращающую два результата, а вторая - ошибку. Это нормально работает, но any
теряет информацию о типе и является лишь пустым интерфейсом в результате.
Поскольку я также вызываю функции lib, я не вижу способа решить эту проблему с помощью интерфейсов или отражений.
Любые идеи? Я полностью на неправильном пути или близка к цели?