Contents

Dart에서 ?? 연산자와 ??= 연산자

  • ?? 연산자(’null operator’ 라고 부르나 봄)는 왼쪽 표현식이 null이 아니면 그걸 취하고, null 이면 오른쪽 표현식을 취함.
  • ??= 연산자(’null-aware operator’ 라고 부르나 봄)는 현재 변수의 값이 null 일때만 오른 쪽 값 assign.

처음보는 사람은 모를 수 있으니 안쓰는게 깔끔할 것 같은데, 가끔 보이는 것 같으니 알아두도록 하자.



🔶 ?? 연산자 사용해서 함수 구현

String playerName(String? name) => name ?? 'Guest';

🔶 삼항 연산자 (condition) ? (expr1) : (expr2) 로 같은 함수 구현

// Slightly longer version uses ?: operator.
String playerName(String? name) => name != null ? name : 'Guest';

🔶 if-else 로 같은 함수 구현

// Very long version uses if-else statement.
String playerName(String? name) {
  if (name != null) {
    return name;
  } else {
    return 'Guest';
  }
}

// Assign value to a
a = value;
// Assign value to b if b is null; otherwise, b stays the same
b ??= value;

다른 예제

void main() {
  int value;
  print(value); // <- null
  value ??= 5;
  print(value); // <- 5, changed from null
  value ??= 6;
  print(value); // <- 5, no change
}




Related Content