티스토리 뷰

목차



    반응형

    플러터

    Dart 변수 타입

     

    플러터는 공식적으로 Dart 언어를 사용하며, Dart 에서 사용하는 변수 타입에 대해 정리 해보겠습니다.

    기본 타입

    문자열 ( String ) String name = "홍길동";
    정수 ( int ) int age = 20;
    실수 ( double ) double score = 99.8;
    불리언 ( bool )   /  참/거짓 ( true / false )  bool isHuman = true;

     

     

     

    컬렉션

    컬렉션은 하나의 변수에 여러 값을 저장할수 있는 타입으로 

    여러 값을 순서대로 보관하는 List 형, 특정 key를 기준으로 빠르게 검색할수 있는 Map, 중복제거를 위해 사용되는 Set이 있습니다.

     

    List

    여러 값을 순서대로 저장할때 사용되며, List에 저장되는 값들은 List를 정의 할때 입력하는 타입으로 넣어야합니다.

    List<String> names = ['홍길동','심봉사','흥부','놀부'];
    List<int> age = [10,20,30,40];

     

    List - add() 함수

    add() 함수는 List 에 값을 추가할 때 사용되며 추가하고 싶은 값을 parameter에 입력하면 됩니다.

    List<int> ages =  [10,20,30,40];
    ages.add(50);
    print(ages);   // 결과 : [10,20,30,40,50]

     

    List - where() 함수

    where() 함수는 List에 있는 값을 순차적으로 돌면서 요청한 조건에 맞는 값을 추출할때 사용 됩니다.

    parameter에 함수를 입력하며, 함수는 List 에 있는 값들을 하나씩 parameter로 받아 값이 true이면 해당 값을 유지하고, false 이면 값을 제거 합니다.

    이렇게 참인 값을 을 모아 Iterable(List나 Set과 같은 컬렉션이 공통으로 사용하는 기능을 정의해놓은 class)을 반환 합니다.

    List<int> ages = [10,20,30,40,50];
    final youngList = ages.where((age) => age < 40);
    
    print(youngList);    
    // 출력 (10, 20, 30)
    print(youngList.toList());  // Iterrable을 List 로 형변환
    // 출력 [10, 20, 30]

     

    List - map() 함수

    map() 함수는 List 에 있는 값을 순차적으로 추출하여 값을 변경할수 있습니다.

    List<int> ages = [10,20,30,40,50];
    final newAge = ages.map((age) => age + 1);
    
    print(newAge);
      //출력 (11, 21, 31, 41, 51)
    print(newAge.toList());  // Iterrable을 List 로 형변환
      //출력 [11, 21, 31, 41, 51]

     

     

     

    Map 타입

    Map(맵) 타입은 키(key) 와 값(value)로 저장 됩니다.

    해당 컬렉션 타입은 키를 이용해 쉽고 빠르게 값을 찾아 내어 사용하는 용도로 주로 사용 됩니다.

    표현법 : Map<키 타입, 값 타입> 

    Map<String , int> ages  = {
         
         '홍길동' : 20,
         '이순신' : 30,
         '강감찬' : 40,
       };
      
      print(ages['홍길동']);  //  출력 20
      print(ages['이순신']);  //  출력 30
      print(ages['강감찬']);  //  출력 40

     

     

    key 와 value 를 값 확인 하기

    생성한 Map의 키 또는 값을 목록으로 확인 하는 방법 입니다.

       Map<String , int> ages  = {     
         '홍길동' : 20,
         '이순신' : 30,
         '강감찬' : 40,
       };
      
      print(ages.keys);  //  (홍길동, 이순신, 강감찬)
      print(ages.keys.toList());  //  [홍길동, 이순신, 강감찬]
      print(ages.values);  //  (20, 30, 40)
      print(ages.values.toList());  //  [20, 30, 40]

     

     

     

    Set 타입

    Set는 중복이 없는 값의  List 형태로 ,중복을 방지하여 유일한 값 만으로 존재하는것을 보장 합니다.

       Set<String> ages  = {'홍길동','이순신','강감찬', '이순신', '세종대왕' };
       print(ages);  // 출력 : {홍길동, 이순신, 강감찬, 세종대왕}

     

     

     

    enum 타입 

    enum은 하나의 변수에 여러 가지 옵션으로 값을 제한 하는 타입입니다.(선택지가 제한적일때 사용 됩니다)

    enum Color{
      red, blue, black, white,
    }
    void main () {
       Color color = Color.blue;
       print(color);  // 출력 Color.blue
    }

     

     

     

    상수 선언  (final ,  const)

    final 과 const 키워드는 변수에 값을 할당하면, 이후 값을 변경할 수 없습니다.

    void main () {
       final String name = '홍길동';
       name = '이순신';    // name 은 final 로 선언되어 변경하려고 하면 에러 발생
      
       const int age = 20;
       age  = 30;        // age 역시 상수 const 로 선언되어 변경하려고 하면 에러 발생
    }

     

    final 과 const의 차이

    final 은 프로그램의 런타임, const 는 빌드타임의 상수입니다.

    쉽게 예를 들어  final 경우 런타임때 적용되는 상수로써 프로그램이 실행되는 시점에서야 값을 알수있고,

    const 는 어플리케이션이 빌드되는 타임에 값이 저장 됩니다.

    반응형