Flutter/Dart

Dart 기본 문법 2 - 맵(Map), Null Safety, Enum, Set, 연산자

빈코더 2025. 1. 10. 14:06
728x90

안녕하세요! 오늘은 Flutter 개발에 필수적인

 

Dart 언어의 기본 문법 1편에 이어 2편을 정리해 보겠습니다.

 

Dart 기본 문법 1 - 변수, 함수, 클래스, 리스트, 조건문, 반복문

안녕하세요! 오늘은 Flutter 개발에 필수적인 Dart 언어의 기본 문법을 정리해 보겠습니다. Dart는 Google에서 만든 프로그래밍 언어로, 특히 Flutter 앱 개발에서 사용됩니다. 이번 포스팅에서는 Dart의

binogood.tistory.com

 

이번 포스팅에서는 Dart의 핵심 문법인 맵(Map),  Enum, Null Safety, Set, 연산자을 다룰 예정입니다. 

 

1. 맵(Map)

Dart에서 Map은 키-값 쌍으로 데이터를 저장하는 컬렉션입니다. Python의 dict와 유사합니다.

void main() {
  var person = {
    'name': 'John',
    'age': 30,
    'isStudent': false,
  };

  print(person['name']); // John
  print(person['age']);  // 30
  
  // 값 추가
  person['job'] = 'Developer';
  
  print(person);
}

2. Null Safety

Dart는 Null Safety를 지원하여 런타임 오류를 줄이는 데 도움을 줍니다.

Nullable 변수

변수에 ?를 붙이면 null을 허용합니다.

void main() {
  int? age = null; // null 허용
  print(age);      // null
}

Null-aware 연산자

  • ??: Null인 경우 기본값을 반환
  • ?.: Null일 때 메서드 호출 방지
  • ??=: 값이 null이면 기본값 설정
void main() {
  int? value;
  
  print(value ?? 10); // 10 (기본값)
  
  value ??= 20;
  print(value);       // 20
}

 

3. Enum(열거형)

열거형은 상수 값의 집합을 정의할 때 사용됩니다.

enum Weather { sunny, cloudy, rainy }

void main() {
  var today = Weather.sunny;

  switch (today) {
    case Weather.sunny:
      print('맑은 날씨입니다.');
      break;
    case Weather.cloudy:
      print('흐린 날씨입니다.');
      break;
    case Weather.rainy:
      print('비 오는 날씨입니다.');
      break;
  }
}

4. Set

Dart의 Set은 중복되지 않는 요소를 저장합니다.

void main() {
  var numbers = {1, 2, 3, 4, 5};
  numbers.add(5); // 중복된 값 추가 시 무시됨
  
  print(numbers); // {1, 2, 3, 4, 5}
}

 

5. 연산자

비교 연산자

void main() {
  print(5 > 3);  // true
  print(5 == 3); // false
  print(5 != 3); // true
}

삼항 연산자

void main() {
  var age = 20;
  var result = age >= 18 ? '성인' : '미성년자';
  print(result); // 성인
}

 


결론

이번 포스팅에서는 Dart의 기본 문법인 맵(Map), Null Safety, Enum, Set, 연산자를 살펴보았습니다.

Dart는 간결하고 직관적인 문법으로 구성되어 있어 배우기 쉽고, Flutter 개발에서 강력한 도구로 사용됩니다.

다음 포스팅에서는 더 심화된 Dart 문법과 Flutter UI 개발을 다룰 예정이니 기대해주세요! 😊


🔥 댓글로 질문 남겨주세요! 🔥

이 포스팅이 유익했다면 공감과 댓글 부탁드립니다. 감사합니다! 😊

728x90