APP/Dart

dart 객체지향 프로그래밍 generic 이란?

개발자 aloe 2022. 8. 16. 20:39
728x90

// Generic - 타입을 외부에서 받을때 사용 

List<String> names = []; // 리스트 선언할때 했었음

List<String> 이 부분임 리스트 안에 String 자료형이 들어간다.

 

void main(){
  //List<String> names = []; // 리스트 선언할때 했었음

// id 값 String 값으로 넣고 싶다면 이렇게  Generic  부분에 지정할 타입 값 넣을때 '123' 이렇게 문자로 보내주면됨
  Lecture<String> lecture1 = Lecture('123', 'lecture1');
  
}

// Generic - 타입을 외부에서 받을때 사용 

class Lecture<T>{ // T말고 어떤 이름이던 상관 없음 
  final T id; // id의 자료형 즉 뭐가 될지 외부에서 선언할수 있음    가끔 이런게 필요한 상황이 있음 
  final String name;

  Lecture(this.id, this.name);


}

 

 

이해 하기 쉽게 타입 출력 해보자

void main(){
  //List<String> names = []; // 리스트 선언할때 했었음

// id 값 String 값으로 넣고 싶다면 이렇게  Generic  부분에 지정할 타입 값 넣을때 '123' 이렇게 문자로 보내주면됨
  Lecture<String> lecture1 = Lecture('123', 'lecture1');
  
  lecture1.printIdType();// 확인시 우리가 지정한거 처럼 id는 string 타입이 됨 


  Lecture<int> lecture2 = Lecture(123, 'lecture2');
  
  lecture2.printIdType();  // 이렇게 하면 int형이 나옴 
  
  // 즉 Generic은 type을 외부에서 변수처럼 받아서 사용할수 있도록 해주는 것임 
}

// Generic - 타입을 외부에서 받을때 사용 

class Lecture<T>{ // T말고 어떤 이름이던 상관 없음 
  final T id; // id의 자료형 즉 뭐가 될지 외부에서 선언할수 있음    가끔 이런게 필요한 상황이 있음 
  final String name;

  Lecture(this.id, this.name);

  void printIdType(){
    print(id.runtimeType);
  }


}

그래서 다시 말하면 Generic - 타입을 외부에서 받을때 사용  이게 끝임

2개를 전달 할수도 있음

Lecture<String, String> lecture1 = Lecture('123', 'lecture1');

class Lecture<T, X>{         이렇게 타입을 2개 넣을수도 있음 
  final T id; 
  final X name;
*/

이런식으로 뭐 둘다 T 또는 X 써도 됨 

728x90