Dart에서 사용하는 다양한 Null check 방법을 소개합니다.
기본적으로 if문으로 Null 체크를 하면 코드가 길어지는데요, 다른 표현 방식을 사용하여 동일한 내용을 간결하게 구현할 수 있습니다.
1. if문으로 null 체크
다른 프로그래밍 언어 처럼, if문을 사용하여 변수가 null인지 체크를 할 수 있습니다.
variable == null
: 변수가 null일 때 truevariable != 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
- Flutter/Dart - Future.delayed() 사용 방법
- Flutter/Dart - Stream 사용 방법
- Flutter/Dart - 파일, 디렉토리 삭제
- Flutter/Dart - 텍스트 파일 쓰기
- Flutter/Dart - 반복문 (for, while, for-in, forEach)
- Flutter/Dart - Static 변수, 메소드 선언
- Flutter/Dart - 텍스트 파일 읽기
- Flutter/Dart - 다양한 Null 체크 방법
- Flutter/Dart - Double을 Int로 변환
- Flutter/Dart - Double을 String으로 변환
- Flutter/Dart - String을 Double로 변환
- Flutter/Dart - String을 List로 변환
- Flutter/Dart - String에서 특정 문자열 Index 찾기
- Flutter/Dart - String 길이(length)
- Flutter/Dart - 몇 초 지연시키기, sleep
- Flutter/Dart - 날짜 계산, 년/월/일 더하고 빼기
- Flutter/Dart - 날짜 문자열을 DateTime으로 변환
- Flutter/Dart - 현재 시간 가져오기, DateTime
- Flutter/Dart - Map에 key-value 추가
- Flutter/Dart - Map 순회 방법
- Flutter/Dart - Map 선언 및 초기화
- Flutter/Dart - Map에서 Entry(key-value) 제거
- Flutter/Dart - key, value로 Map 정렬
- Flutter/Dart - 리스트 복사 방법
- Flutter/Dart - 리스트 합치는 방법
- Flutter/Dart - 리스트 최대값, 최소값 찾기
- Flutter/Dart - 리스트 요소 추가, 특정 위치 추가
- Flutter/Dart - 리스트 요소 제거
- Flutter/Dart - 리스트 합계, 평균 계산
- Flutter/Dart - 리스트 요소 값 변경, 찾기
- Flutter/Dart - 리스트 중복 제거
- Flutter/Dart - 리스트 정렬 (오름차순, 내림차순)
- Flutter/Dart - 리스트 자르기, 분리하기
- Flutter/Dart - 변수 타입 체크
- Flutter/Dart - 리스트 필터링