프로그래밍/Dart

Dart Nullable

autostar 2023. 4. 18.
반응형

프로그래밍에서 Null 값이란 빈값을 의미 합니다. 

string 타입에서 ""; 이 아무것도 없는 값으로 볼 수도 있지만 사실 빈값이 들어가 있는 상태이고

String value  = ""; <- 이렇게 초기화 해준상태입니다.

마찬가지로 int 는 0 값이라고 생각 할수 있겟지만 0이라는 값이 들어있는것이고

int value = 0; 이라는 형태입니다.

 

프로그래밍에서 Null 값 때문에 프로그램이 에러가 나기 때문에 값을 강제하는 언어들이 있습니다. (없는 언어도 있음)

그런데 항상 값이 정해져 있지만은 않습니다. 

변수 선언 시점에서 그 값을 모르는 경우도 있기도 하고, 그 변수를 지나간 다음에 값이 할당되는 경우도 있을 것입니다.

이 경우를 허용하기 위해 Nullable 이라는 개념이 '존재' 하는 것입니다

 

그래서 이걸 어떻게 쓰는것인지???

 

간단합니다. 

String? value 

요렇게 타입 뒤에 물음표를 던지며 물어보면 됩니다. 스트링이니?

그럼 대답은 들을 수 없지만 다트 컴파일러는 알아듣고 불평불만을 하지 않습니다.

 

그러고 일단 value 에다가 null 값을 부여합니다.

 

널값을 방지해 기본값을 부여하는 방법도 있습니다.

그것은 ??= 을 이용해서 값을 부여하는 방법입니다.

value ??= 4; // 값이 없으면(널이면) 4를 넣는다.

예제를 통해 보겠습니다.

 

void main (){
double? number; // 자동으로 null 값 지정
print(number);

number ??= 3; // ??= 널값일때 값을 부여합니다. 
print(number); // 3

number ??=4; // 이제 널값이 아니기때문에 4를 넣지 않습니다.
print(nubmer); // 3
반응형

'프로그래밍 > Dart' 카테고리의 다른 글

Dart 함수 형태  (0) 2023.04.19
Dart loop programming for 문 while 문  (0) 2023.04.19
Dart Map과 Set  (0) 2023.04.18
Dart List에 대해 그리고 함수들  (0) 2023.04.18
Dart 기초 문법  (0) 2023.04.18

댓글