Dart에서 QQ 연산자는 특정 조건을 만족하는 값을 평가하는 것을 간소화하기 위해 사용되는 중요한 연산자입니다. QQ 연산자는 "??", "if null operator" 또는 "null coalescing operator"라고도 불립니다. 이 연산자는 특정 값이 null이면 다른 값을 반환하도록 지정할 수 있습니다.
Dart QQ 연산자 사용
Dart의 ?? 연산자는 값이 null인 경우 대체 값을 제공하는 데 사용됩니다. 이 연산자는 종종 null 병합 연산자라고도 불립니다. 이 연산자를 사용하면 코드가 간결해지고 null 체크를 줄일 수 있습니다.
QQ 연산자 사용 방법
QQ 연산자는 다음과 같은 형식으로 사용합니다.
value1 ?? value2
위와 같이 사용할 경우, value1이 null이면 value2를, value1이 null이 아니면 value1을 반환합니다.
void main() {
// nullable 변수로 선언
String? name = "John";
String nickname = name ?? "No name";
print(nickname);
// output: John
name = null;
nickname = name ?? "No name";
print(nickname);
// output: No name
}
QQ 연산자를 사용하여 name이 null인 경우에만 No name을 반환하는 것을 확인할 수 있습니다.
??= 연산자 사용
?? 연산자는 왼쪽 값이 null 인지 체크해서 null 이 아니면 왼쪽 값을, null 이면 오른쪽 값을 리턴하였습니다. ??= 연산자는 변수 안에 값이 null 일 때를 체크해서 값을 할당할 수 있습니다.
void main() {
String? name;
name ??= "John";
print(name);
// output: John
// name = null;
name ??= "jin";
print(name);
// output: John
}
위 코드에서 nullable 변수로 선언된 name의 초기 값이 없기 때문에, ??= 연산자로 인해 첫번째 print 문장은 John으로 출력됩니다.
이어서
name ??= "jin";
위 문장은 앞에서 name이 John이 되었기 때문에, name 은 계속 John이 됩니다.
이 경우, name을 다시 null 로 초기화 해주면 ??= 연산자로 인해 name은 jin으로 변경됩니다.
QQ 연산자와 삼항 연산자 비교
QQ 연산자와 삼항 연산자는 비슷한 기능을 가지지만, 간단하고 가독성이 높은 표현을 제공한다는 점에서 차이가 있습니다. 예를 들어, 다음은 name 변수가 null인 경우에 Unknown을 반환하는 삼항 연산자의 코드입니다.
String name = null;
print(name != null ? name : 'Unknown');
비교해 보면, QQ 연산자는 코드가 더 간결하고 가독성이 높아서, 좀 더 편리하게 사용할 수 있습니다.
마무리
Dart의 QQ 연산자는 null 병합, 조건부 값 반환, 기본값 지정 등의 기능을 가지고 있어, 간단하고 가독성이 높은 코드 구현이 가능합니다. 삼항 연산자와 비교해보면, 더 편리하고 가독성이 높은 코드 구현이 가능하다는 점에서 유용한 연산자입니다.
오늘도 행복한 코딩생활 되시길 바라겠습니다.
감사합니다.
'개발 > Dart' 카테고리의 다른 글
Dart 기본 - 18. class 기본, 객체지향 프로그래밍의 기초 (0) | 2023.02.06 |
---|---|
Dart 기본 - 17. typedef, 복잡한 함수 타입을 간결하게 하는 방법 (0) | 2023.02.05 |
Dart 기본 - 15. Optional Parameters 와 Positional Parmeters (0) | 2023.02.02 |
Dart 기본 - 14. named parameter, required 사용 방법 (0) | 2023.02.01 |
Dart 기본 - 13. 함수 정의하기, fat arrow 사용 방법 (0) | 2023.01.30 |
댓글