본문 바로가기
기초다지기/Flutter&Dart

Dart :: Null Safety란? 널 안전성에 대해 알아보자

by 김빵그 2023. 10. 28.

널 안전성이란? 

  • 변수 또는 객체의 값이 null인지 아닌지 명확하게 정의하고 코드 실행 중에 발생할 수 있는 널 포인터 예외를 방지하고 안정성을 높이는 기능이다
  • 널 안정성을 프로그램의 신뢰성을 향상시키며 버그와 예외를 줄이는 데 도움이 된다
  1. 변수, 매개 변수 또는 기타 관련 구성요소에 대한 유형을 지정할 때 해당 유형이 허용하는지 여부를 제어할 수 있으며 Null 허용 여부를 활성화 하려면 유형 선언 끝에 ? 물음표를 추가한다
  2. 변수를 선언하면서 초기값을 주지 않으면 자동으로 널로 초기화 된다, 널 불허로 선언한 변수는 선언과 동시에 널이 아닌 값으로 초기화 해야한다 
  3. var 타입에는 ?물음표를 사용할 수 없다 var로 선언한 변수에 null 값을 주고 싶으면 dynamic 타입으로 대입하여야 null을 포함시킬 수 있다
  4. dynamic 타입에는 물음표를 추가할 수 있지만 의미는 없다. 사실 모든 데이터를 대입할수 있기 때문이다

연산자

1. 널인지 점검할 때 : ! 

  • 변수 이름 뒤에 ! 연산자를 추가하면 이 변수값이 null일때 런타임 오류가 발생한다

2. 멤버에 접근할 때 : ?, ?[]

  • null이 아닐때는 데이터에 접근 할 수 있으면 null이면 null을 반환한다

3. 값을 대입할 때 : ?? =

  • 널 허용 변수에 널이 아닌 값만 대입하고 싶을때 사용 
  • ??= 연산자는 오른쪽의 대입할 값이 널이 아닐때만 대입하고 널이면 대입하지 않는다

4. 값을 대체할때 :??

  • 널 허용 변수가 널일 때 대체할 값을 지정하고 싶을 때 사용

 

 

 

Sound null safety

Information about Dart's null safety feature

dart.dev