본문 바로가기

Dart

[Dart] 변수 / 조건문 / 반복문 / final, const / null safety

 

Dart는 타입 유추가 가능한 언어이므로 타입 표기는 선택 사항이다.

Dart에서 변수는 데이터의 종류를 정의하는 몇 가지 유형이 있다.

✔️ 변수

- int: 정수 타입

int i = 1;

 

- double: 실수 타입

double d = 1.1;

 

- num: int와 double을 모두 쓸 수 있는 타입

num a = 10;
num b = 10.0;

 

- String: 문자열 타입

String name = '이름';

 

- bool: 참 또는 거짓 타입

bool b = true;

✔️   if ~ else if ~ else, for: 조건문, 반복문

 

- if ~ else if ~ else

: 만약 조건이 a 라면 A를 하라. 만약 조건이 b라면 B를 하라. 아니면 C를 하라와 같은 조건을 처리할 때 사용한다.

num? a = 10;

  if (a is int) {
    print('정수 입니다.'); // 정수 입니다 출력
  } else if (a is double) {
    print('실수 입니다.');
  } else {
    print('정수도 실수도 아닙니다.');
  }

 

-  for

: 요소를 반복하는 반복문.

var fruits = ['딸기', '사과', '포도'];

  for (var i = 0; i < fruits.length; i++) {
    print(fruits[i]); // 딸기 사과 포도 출력
  }

✔️   final / const

Dart 에서 final과 const는 상수를 사용할 때 쓰는 키워드이다.

final과 비슷한 역할을 하는 것이 js에서 const이며 마찬가지로 재할당은 되지 않는다.

둘 다 상수인 점에서는 비슷하지만 다른 점이 있는데, const 변수는 컴파일 타임 상수이다.

 

- final: 처음 액세스할 때 초기화되며 런타임시 결정된다.

final DateTime now = DateTime.now(); // 문제 없음

 

- const: const 변수는 즉시 초기화되며 해당 값은 컴파일 타임에 결정된다.

const DateTime now = DateTime.now(); // 컴파일 에러

 

final 객체는 수정할 수 없지만 객체의 필드는 변경할 수 있다.
하지만 const 객체는 필드도 변경할 수 없다.

✔️   null safety

- null safety는 말 그대로 null 에게서 안전한 코드를 작성하는 것을 의미한다. null safety는 애플리케이션 실행 중 null 참조 에러가 발생하는 경우 컴파일러가 해당 버그를 잡아줌으로써 예상치 못한 에러를 대비할 수 있게 해 준다.

int a = null; // 에러
int? a = null; // null값 할당 가능
int? a; // null값을 할당하지 않아도 초기 값은 null이 된다.

 

출처:

https://dart.dev/

https://www.hanbit.co.kr/store/books/look.php?p_code=B6197690220 

https://medium.com/flutter-korea/flutter%EC%9D%98-null-safety-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-dd4ee1f7d6a5

 

'Dart' 카테고리의 다른 글

[Dart] 클래스 / 인스턴스  (0) 2023.05.25