[dart] 무엇입니까 ?? Dart에서 이중 물음표?

다음 코드 줄에는 두 개의 물음표가 있습니다.

final myStringList = prefs.getStringList('my_string_list_key') ?? [];

무엇을 의미 하는가?



답변

??이중 물음표 운영자 수단 “경우는 null”. 예를 들어 다음 식을 사용하십시오.

String a = b ?? 'hello';

이것은 a같음을 의미 b하지만, 만약 bnull이면 a같음 'hello'.

또 다른 관련 연산자는 ??=입니다. 예를 들면 :

b ??= 'hello';

즉, b이 null이면으로 설정합니다 hello. 그렇지 않으면 변경하지 마십시오.

참고

자귀

다트 1.12 릴리스 뉴스 집합으로 다음과 같은 언급 널 인식 운영자 :

  • ?? -null 연산자 인 경우
  • ??= -널 인식 할당
  • x?.p -널 인식 액세스
  • x?.m() -널 인식 메서드 호출


답변

Dart는 null 일 수있는 값을 처리하기위한 몇 가지 편리한 연산자를 제공합니다. 하나는 ?? = 할당 연산자로, 해당 변수가 현재 null 인 경우에만 변수에 값을 할당합니다.

int a; // The initial value of a is null.
a ??= 3;
print(a); // <-- Prints 3.

a ??= 5;
print(a); // <-- Still prints 3.

또 다른 널 인식 연산자는 ?? , 표현식의 값이 null이 아닌 경우 왼쪽에 표현식을 반환합니다.이 경우 오른쪽에 표현식을 평가하고 반환합니다.

print(1 ?? 3); // <-- Prints 1.
print(null ?? 12); // <-- Prints 12.


답변