Tipo genérico
Em ciência da computação , tipos genéricos são tipos de dados com a opção de especificar parâmetros de tipo. Também se fala de polimorfismo paramétrico .
Um tipo genérico permite que tipos de dados sejam gerados de forma abstrata dos tipos subjacentes. Assim, pode-se programar uma lista de números, uma lista de caracteres e uma lista de datas da mesma maneira; H. os algoritmos para inserir, pesquisar e excluir sempre rodariam da mesma forma. Portanto, é desejável implementar a lista independentemente desses tipos.
Por exemplo, em Java, uma lista genérica seria definida da seguinte maneira:
List<T>
Aqui significa List<T> tipo genérico e Té chamado de parâmetro de tipo . Os tipos genéricos são encontrados em todas as linguagens de programação que o paradigma da programação genérica suporta.
Em linguagens de programação, existem basicamente duas abordagens para oferecer suporte a tipos genéricos. Uma é que o mesmo código é usado GenerischerTyp<T>para todos os se usa propriedades específicas de Tvia ligação dinâmica de métodos T. Outra maneira, que i.a. C ++ tem tudo a ver com o uso de modelos . O parâmetro de tipo é substituído diretamente pelo tipo específico em tempo de compilação. Se houver vários parâmetros de tipo diferentes para um tipo genérico, várias classes também serão criadas em C ++.
Com o .NET , a Microsoft faz um meio-termo para combinar as vantagens de ambos os métodos: para todos os tipos de referência como parâmetros de tipo, a classe genérica usa o mesmo código nativo , pois a representação interna (uma referência simples ) de todos os tipos de referência é a mesma. Ao usar tipos de valor como parâmetros de tipo, um caminho de código nativo separado é criado para cada tipo de valor no tempo de execução quando ele é usado pela primeira vez.
Tipos genéricos em várias linguagens de programação
- C ++ implementa tipos genéricos usando modelos, por exemplo, B. Modelos de classe.
- Programação genérica em Java
- C # e outras linguagens .NET oferecem genéricos desde .NET 2.0
- Na linguagem de programação Ada , tipos genéricos são usados para parametrizar pacotes.
- Delphi oferece suporte para tipos genéricos desde Delphi 2009, Free Pascal suporta classes genéricas da versão 2.2.
- A linguagem de programação Haxe oferece tipos genéricos para Flash, JavaScript e execução do lado do servidor (todas são três áreas nas quais os genéricos não são possíveis)
- Haskell oferece um sistema de tipos muito poderoso