Evite usar asserções de tipo nas ramificações de uma opção de tipo
Eu uso comutadores de tipo no Go, por exemplo o seguinte:
switch question.(type) {
case interfaces.ComputedQuestion:
handleComputedQuestion(question.(interfaces.ComputedQuestion), symbols)
case interfaces.InputQuestion:
handleInputQuestion(question.(interfaces.InputQuestion), symbols)
}
Existe uma maneira de impedir que eu tenha que afirmar o tipo de pergunta dentro do caso antes que eu possa passá-lo para outra função?