본문 바로가기
스터디/Dart

[Dart] #3.4 QQ Operator ?? and ??=

by SayHiWorld 2024. 1. 10.

??

??=

 

이름을 대문자로 return하는 함수

 

String capitalizeName(String name) => name.toUpperCase(); 

String capitalizeName(String? name) => name.toUpperCase(); --> 오류 b/c if name is null, can't use toUpperCase

 

해결 방법 1. if문

String capitalizeName(String? name) {

   if (name != null) {

        return name.toUpperCase();

   }

   return 'ANON'; //if name is NULL

}

 

해결 방법 2. ? : and fat arrow

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

 

해결방법 3. ?? and fat arrow 

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

 

left??right

if left is null give right,

if left NOT null give left.

 

 

 

void main() {

    capitalizeName('nico'); //NICO

    capitalizeName(null) //사용자가 null도 입력하게 하고 싶어!

 

 

void main() {

    String? name;

    name ??= 'nico'; //if name is NULL, please put value in it

    name ??= 'another';  // //if name is NULL, please put another value in it. this won't work b/c name is not null now. it is 'nico'

    print (name); //'nico'

}

 

출처: https://nomadcoders.co/dart-for-beginners/lectures/4112

'스터디 > Dart' 카테고리의 다른 글

[Dart] #3.5 Typedef  (0) 2024.01.10
[Dart] #3.3 Optional Positional Parameters  (0) 2024.01.10
[Dart] #3.2 Recap ^_^ (positional,named,required,default)  (0) 2024.01.10
[Dart] #3.1 Named Parameters ({ })  (0) 2024.01.10
[Dart] #3.0 Functions  (0) 2024.01.10