Flutter/Dart - 다양한 Null 체크 방법

Dart에서 사용하는 다양한 Null check 방법을 소개합니다.

기본적으로 if문으로 Null 체크를 하면 코드가 길어지는데요, 다른 표현 방식을 사용하여 동일한 내용을 간결하게 구현할 수 있습니다.

1. if문으로 null 체크

다른 프로그래밍 언어 처럼, if문을 사용하여 변수가 null인지 체크를 할 수 있습니다.

  • variable == null : 변수가 null일 때 true
  • variable != null : 변수가 null이 아닐 때 true
if (variable != null) {
  // null이 아닌 경우에 실행할 코드
} else {
  // null인 경우에 실행할 코드
}

2. 3항 연산자로 null 체크

다른 언어에도 지원하는 3항 연산자로 null을 체크하고 조건에 따라서 특정 값을 사용하도록 구현할 수 있습니다.

  • (variable != null) ? variable : defaultValue : variable이 null이 아니면 variable 리턴, null이면 defaultValue 리턴
void main() {
  String? variable = null;
  String defaultValue = "Default";

  var result = (variable != null) ? variable : defaultValue;
  print(result);
}

Output:

Default

3. Null-Aware 연산자로 null 체크

Null-Aware는 위의 3항 연산자를 축약한 표현 방식이라고 볼 수 있습니다.

?? 으로 null 체크

아래와 같이, variable의 null 체크를 하며 null인 경우 default 값으로 대체할 수 있습니다.

  • variable ?? defaultValue : variable이 null이 아니면 variable 리턴, null이면 defaultValue 리턴
void main() {
  String? variable = null;
  String defaultValue = "Default";

  var result = variable ?? defaultValue;
  print(result);
}

Output:

Default

?.method() / ?.variable 로 null 체크

메소드를 호출할 때 아래와 같이 ?를 붙이면, 객체가 null일 때 메소드를 호출하지 않고 null을 리턴하며 null이 아닐 때는 메소드를 호출합니다.

  • object?.method()
  • object?.variable
void main() {
  String? variable = null;
  String defaultValue = "Default";

  var result = variable?.toString();
  if (result == null) {
    print("result is null");
  }
  // print(result);
}

Output:

result is null

variable이 null이라서 null이 리턴되었을 때, ??와 조합하여 default 값을 설정할 수도 있습니다.

var result = variable?.someMethod() ?? defaultValue;

또는, 아래와 같이 if문 안에서도 사용할 수 있습니다.

if (list?.isEmpty ?? false) {
  return 'Empty list';
}
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha