[Dart] 제네릭 (generics)

AsherKim·2023년 5월 31일
0

플러터 TIL

목록 보기
16/18

제네릭(generics)은 Dart에서 사용되는 강력한 기능 중 하나이다. 제네릭은 코드의 재사용성과 타입 안정성을 높여준다.

제네릭은 함수나 클래스의 인수, 반환 값, 변수의 타입을 일반화(generalize)하는 방법을 제공한다. 일반적인 데이터 타입 대신에 타입 매개변수(type parameter)를 사용하여 여러 위치에서 동일한 코드를 재사용할 수 있다.

제네릭을 사용하면 데이터 타입에 대한 추상화를 가능하게 한다. 예를 들어, List 클래스를 생각해보면, 제네릭을 사용하지 않을 경우 다양한 데이터 타입을 담을 수 없다. 하지만 제네릭을 사용하면 다양한 타입의 리스트를 생성할 수 있다. 이렇게 제네릭을 사용하면 컴파일러가 타입 체크를 수행하므로 타입 안정성을 보장할 수 있다.

Dart에서 제네릭을 사용하려면 클래스나 함수를 정의할 때 타입 매개변수를 사용해야 한다. 타입 매개변수는 일반적으로 대문자로 표시되며, 함수나 클래스 내부에서 해당 타입을 사용할 수 있다.

예를 들어, 아래는 제네릭을 사용하여 List 클래스를 구현하는 예시이다

class List<T> {
  List<T> items = [];

  void add(T item) {
    items.add(item);
  }

  T getItem(int index) {
    return items[index];
  }
}

void main() {
  var stringList = List<String>();
  stringList.add("Hello");
  stringList.add("World");
  print(stringList.getItem(0));  // 출력: Hello

  var intList = List<int>();
  intList.add(1);
  intList.add(2);
  print(intList.getItem(1));  // 출력: 2
}

위의 예시에서 List T는 타입 매개변수이다. 이렇게 하면 List 클래스를 생성할 때 어떤 타입의 리스트를 사용할 것인지 지정할 수 있다.

제네릭은 코드의 재사용성과 가독성을 향상시키고 타입 안정성을 보장하는 데 도움을 준다. 따라서 Dart에서는 제네릭을 적극적으로 활용하여 유연하고 안전한 코드를 작성할 수 있다.

profile
추리를 좋아하는 개발자

0개의 댓글