Как обойти структуру в цикле?
Это можно сделать через пакет reflect, но если вам это потребовалось, значит в архитектуре вашей программы что-то не так и вы пытаетесь перенести опыт скриптовых языков на go. Не надо так.
GO - язык со статической типизацией, тип операндов вычисляет при компиляции, как он может "обоходя структуру" делать разные (по типу операндов) операции? Ответ: Вы ему подскажете, ручками, во всех 23 случаях.