Isenção de responsabilidade: só joguei no Go por um dia agora, então há uma boa chance de eu ter perdido muito.
Alguém sabe por que não há suporte real para genéricos / modelos / whatsInAName no Go? Portanto, existe um genérico map
, mas é fornecido pelo compilador, enquanto um programador Go não pode escrever sua própria implementação. Com toda a conversa sobre tornar o Go o mais ortogonal possível, por que POSSO USAR um tipo genérico, mas não CRIAR um novo?
Especialmente quando se trata de programação funcional, existem lambdas e até fechamentos, mas com um sistema de tipo estático sem genéricos, como eu escrevo, bem, funções genéricas de ordem superior como filter(predicate, list)
? OK, listas vinculadas e similares podem ser feitas com o interface{}
sacrifício da segurança do tipo.
Como uma pesquisa rápida no SO / Google não revelou nenhum insight, parece que os genéricos, se houver, serão adicionados ao Go como uma reflexão tardia. Confio em Thompson para fazer muito melhor do que os caras do Java, mas por que manter os genéricos de fora? Ou eles estão planejados e ainda não foram implementados?
interface{}
sacrifica a segurança do tipo estático . No entanto, essa é uma reclamação um tanto estranha a ser feita ao mencionar o esquema no próximo parágrafo, pois o esquema normalmente não possui verificação de tipo estática.