Sobes.tech
Junior — Middle

Как е реализирана поддръжката за обобщени типове в езика Dart?

sobes.tech AI

Отговор от AI

В езика Dart поддръжката за обобщени типове се реализира чрез параметризация на класове, методи и функции с типове. Това позволява създаването на универсални компоненти, които работят с различни типове данни, като същевременно запазват типовата безопасност.

Обобщените типове в Dart се задават с помощта на ъглови скоби <T>, където T е параметър на типа.

Пример за обобщен клас:

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>("здравей");

  intBox.updateValue(456);
  strBox.updateValue("свят");
}

Dart поддържа ограничения за параметрите на типа (граници), например:

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

По този начин, обобщените типове в Dart са реализирани на ниво език с поддръжка за параметризация и ограничения, което позволява писането на гъвкав и типобезопасен код.