4. null처리문법

강재영's avatar
Sep 26, 2024
4. null처리문법
 
💡
다트는 기본적으로 변수는 null을 가질수 없고 null로 인해 발생하는 오류를 방지하기 위한 여러가지 기법들이있다.
 

1. 널 강제 해제 연산자 ! (Null Assertion Operator)

  • 설명: 이 연산자는 변수가 절대 null이 아니라고 확신할 때 사용합니다. null 값을 무시하고 변수의 값을 강제로 사용할 수 있게 합니다.
  • 주의점: 만약 변수에 null이 존재할 경우, 런타임 오류가 발생합니다. 매우 신중하게 사용해야 하며, 이 연산자는 위험할 수 있습니다.
 
//null 처리 방법 int? findById(int id) { return id == 1 ? 1 : null; } void main() { int r1 = findById(1)!; // 무조건 있어 !! 위험한 코딩 print(r1); }
 

2. 널 대체 연산자 ?? (Null Coalescing Operator)

  • 설명: 이 연산자는 왼쪽 피연산자가 null일 때, 오른쪽의 대체값을 반환합니다. 이를 통해 null 값 대신 기본값을 설정할 수 있습니다.
int r2 = findById(5) ?? 0; // findById(5)가 null이면 0을 반환
 

3. 널 안전 호출 연산자 ?. (Null-aware Operator)

설명: 이 연산자는 변수가 null일 경우 그 뒤의 메서드나 속성에 접근하지 않고 null을 반환합니다. 이를 통해 null 값에서 발생할 수 있는 메서드 호출 오류를 방지합니다.
double r3 = findById(5)?.toDouble() ?? 0.0; // findById(5)가 null이면 toDouble()을 실행하지 않음
 
 

4. 활용 널 안전 호출 연산자 ?. 와 널 대체 연산자 ?? 같이

int? findById(int id) { return id == 1 ? 1 : null; } void main() { double r3 = findById(5)?.toDouble() ?? 0; print(r3); }
 
Share article

강재영 블로그