Тоесть дженерики использовать которые недавно появились? я тоже про это думал, но хочу понять как делать без них
да, как раз задействовать дженерики :)
А без них - не знаю, т.к. если нужно, чтобы функция возвращала значения "разных типов", то возвращать придется interface{}
а для дальнейшей удобной работы с ним, все равно потом нужно будет приводить к конкретному типу, соответственно писать код, который это будет делать за пределами универсальной функции. Допускаю, что без дженериков это нельзя сделать никак.