Dart문법, '??'의 의미

_Eden·2021년 7월 8일
0

'??'는 if null , null 인식 연산자

String a = b ?? 'hello';

해석 : 문자 a에 b를 할당한다. 근데 만약 b가 null이면 a는 hello를할당한다.
Reference1


'??='는 할당 연산자

 b ??='hello';

해석: 이것은 b가 null이면 hello와 동일하게 설정한다는 것을 의미한다. 그렇지 않으면 b가 무슨 값인지는 모르겠지만 동일하게 유지된다.
(This means if b is null then set it equal to hello. Otherwise, don't change it.)
Reference2


'??'연산자의 탄생 배경

다른언어에서의 표현
value = maybeSomeNumber() || 2
//다른 언어에서는 이렇게 쓸 수 있지만
//Dart에서는 이렇게 쓸 수 없다.

Dart에서의 표현
var value = maybeSomeNumber() ?? 2;

//그 이유는 Dart에서 표현식이 'bool'이어야 하기 때문이다.
//because the expression needs to be a boolean.

// '||' operator의 연산의 대상이 bool값을 가져야 하는데 가질 수 없는 유형임으로(?)라고 해석해 볼 수 있겠다.(피연산자는 연산의 대상이다.)
//(“the operands of the || operator must be assignable to bool”).

//위와 같은 이유로 '??'operator가 탄생한 것이다.

Reference3

profile
_Eden, Flutter Developer

1개의 댓글

comment-user-thumbnail
2023년 11월 23일

대단히 감사합니다

답글 달기