Sobes.tech
Junior — Middle

Como é que o suporte para tipos genéricos é implementado na linguagem Dart?

sobes.tech IA

Resposta da IA

Na linguagem Dart, o suporte para tipos genéricos é implementado através da parametrização de classes, métodos e funções com tipos. Isto permite criar componentes universais que funcionam com diferentes tipos de dados, mantendo a segurança de tipos.

Os tipos genéricos em Dart são definidos usando colchetes angulares <T>, onde T é um parâmetro de tipo.

Exemplo de uma classe genérica:

class Box<T> {
  T value;
  Box(this.value);

  void updateValue(T newValue) {
    value = newValue;
  }
}

void main() {
  var intBox = Box<int>(123);
  var strBox = Box<String>("olá");

  intBox.updateValue(456);
  strBox.updateValue("mundo");
}

O Dart suporta restrições de parâmetros de tipo (limites), por exemplo:

class NumberBox<T extends num> {
  T value;
  NumberBox(this.value);
}

Assim, os tipos genéricos em Dart são implementados ao nível da linguagem com suporte para parametrização e restrições, permitindo escrever código flexível e seguro em termos de tipos.