Descargo de responsabilidad: solo he jugado con Go por un día, así que hay una buena posibilidad de que me haya perdido mucho.
¿Alguien sabe por qué no hay soporte real para genéricos / plantillas / whatsInAName en Go? Entonces, hay un genérico map
, pero lo proporciona el compilador, mientras que un programador de Go no puede escribir su propia implementación. Con toda la charla sobre cómo hacer que Go sea lo más ortogonal posible, ¿por qué puedo USAR un tipo genérico pero NO CREAR uno nuevo?
Especialmente cuando se trata de programación funcional, hay lambdas, incluso cierres, pero con un sistema de tipo estático que carece de genéricos, ¿cómo escribo, bueno, funciones genéricas de orden superior como filter(predicate, list)
? OK, las listas vinculadas y similares se pueden hacer interface{}
sacrificando la seguridad de tipos.
Como una búsqueda rápida en SO / Google no reveló ninguna idea, parece que los genéricos, en todo caso, se agregarán a Go como una ocurrencia tardía. Confío en que Thompson lo hará mucho mejor que los chicos de Java, pero ¿por qué mantener los genéricos fuera? ¿O están planeados y simplemente no implementados todavía?
interface{}
sacrifica la seguridad de tipo estático . Sin embargo, esta es una queja un tanto extraña al mencionar que Scheme es el siguiente párrafo, ya que Scheme normalmente no tiene verificación de tipo estático.