DART

[노마드코더 : Dart 시작하기] #3.4 QQ Operator

유호야 2022. 11. 18. 07:54
반응형

 

String capitalizeName(String? name) => name.toUpperCase();
//String? : name이 null일 수도 있다....

void main() {
  print(capitalizeName('nico'));
  print(capitalizeName(null));
}

 

null 일 경우에는

String capitalizeName(String? name) {
//String? : name이 null일 수도 있다....
  if (name != null) {
    return name.toUpperCase();
  }
  return "anon";
}

void main() {
  print(capitalizeName('nico'));
  print(capitalizeName(null));
}

 

위의 코드를 예쁘고 짧게 바꿔보자 
삼차다항식(?)이었나 ? : 

String capitalizeName(String? name) =>
    name != null ? name.toUpperCase() : "ANON";

void main() {
  print(capitalizeName('nico'));
  print(capitalizeName(null));
}

 

그리고 QQ를 살펴보자
아주 간단한 것이 

왼쪽이 null이면 ?? 뒤의 오른쪽 값을 반환하겠다는 것

 

String capitalizeName(String? name) => name?.toUpperCase() ?? "ANON";

void main() {
  print(capitalizeName('nico'));
  print(capitalizeName(null));
}

 

name 값이 null 일 수도 있어서 에러가 뜬다. 
해당 부분은 name 옆에 ? 를 붙여준다.

반응형