본문 바로가기

플러터

다트 입문하기 1.1

  • null값
void main() {
  double?  number1 = null;
  print(number1);
  //타입 뒤에 ?를 붙여줘야 null값을 저장할 수 있음
  
  double?  number2;
  print(number2);
  //자동으로 null값 저장
  
}

 

  • 컬랙션 -> 서로의 타입으로 자유롭게 형변환 가능
    • List : 여러 값을 순서대로 저장
    • Map : 특정 키 값을 기반으로 빠르게 값을 검색
    • Set : 중복된 데이터를 제거할 때 사용 
  enum Status {
    ap,
    pe,
    re,
  }

void main() {
  List<String> blackPinkList = ['리사','지수','제니','로제'];
  blackPinkList.add('코드팩토리'); //리스트의 끝에 추가
  
  final newList = blackPinkList.where(
     (name) => name == '리사' || name == '지수'
  );
  
  final newBlackPink = blackPinkList.map(
    (name) => '블랙핑크 $name' //리스트의 모든 값 앞에 '블랙핑크' 추가
  );
  
  final allMembers = blackPinkList.reduce(
    (value, element) => value + ',' + element //초기값은 value, element는 리스트의 다음 요소
  );
  
  final allMembers2 = blackPinkList.fold<int>(0, (value, element) => value + element.length);
  
  Map<String, String> dictionary = {
    'HP' :  '해리포터',
    'RW' : '론 위즐리',
  };
  
  List<String> blackPink2 = ['로제', '지수', '지수'];
  
  Status status = Status.ap;
  
  print(blackPinkList);
  print(newList);
  print(newList.toList()); //Iterable을 List로 
  print(newBlackPink);
  print(allMembers);
  print(allMembers2); //reduce는 리스트와 함수가 실행되는 리스트 요소들의 타입이 같아야 하지만, fold는 어떤 타입이든 반환 ok
  print(dictionary['HP']);
  print(dictionary.keys);
  print(dictionary.values);
  print(Set.from(blackPink2)); //중복값 허용 x
  print(status);
}

출력결과

  • 변수 선언
    • const : 코드를 실행하지 않은 상태에서 값 확정, 빌드타임
    • final : 코드 실행시에 확정, 런타임