본문 바로가기
코딩라이브러리/Dart

[Dart] 변수 종류, 널(null) 변수 디폴트 처리

by 유니네 라이브러리 2024. 6. 4.

Dart 변수 선언

다트 언어에서 변수는 3가지 타입으로 선언된다.

 

  • var를 이용한 선언
    최초 입력된 값의 타입으로 변수가 정해진다.
    이후, 다른 타입으로 저장될 시 오류 발생한다.
void main() {
  var strName = "유니네 라이브러리";
  print(strName); //유니네 라이브러리

  //Error: A value of type 'int' can't be assigned to a variable of type 'String'.
  strName = 1234; 
  print(strName);
}

 

  • dynamic 타입으로 선언
    입력될 때마다 다른 타입의 변수 저장 가능하다.
void main() {
  dynamic strName = "유니네 라이브러리";

  print(strName); //유니네 라이브러리

  strName = 1234;
  print(strName); //1234
}

 

  • Final, const 타입으로 선언
    변수가 변경되지 않아야 하는 경우 사용

Final 은 런타임 상수
  즉, 코드가 실행될 때 값이 확정될 때 정해짐

import 'dart:math';
void main() {
  final int rdnNum = Random().nextInt(10);
  print(rdnNum); //9
}

 

▶ const 는 빌드 타임 상수
  즉, 코드가 실행되지 않은 상태에서 값이 확정될 때 정해짐.
  Random() 와 같이 빌드타임이 아니라 코드가 실행되는 런타임 시에 알 수 있는 값이기 때문에 오류

//Random() 와 같이 빌드타임이 아니라 코드가 실행되는 런타임 시에 알수 있는 값이기 때문에 오류
import 'dart:math';
void main() {
  //빌드 시 확정된 값이기 때문에 정상
  const String strName = "유니네 라이브러리";
  print(strName); //유니네 라이브러리

  //Error: Method invocation is not a constant expression.
  const int rdnNum = Random().nextInt(10);
  print(rdnNum);
}

 

디폴트 처리 ( Nullable 과 notNull 변수 처리 )

  • null 입력이 가능한 nullable 타입 선언은 타입 뒤에 ? 넣고 선언
void main() {

  String? strName = "유니네 라이브러리";
  print(strName); //유니네 라이브러리
  //nullable 변수 선언되어 null 저장 가능
  strName = null;
  print(strName); //null

  String notNullStr = "유니네 라이브러리";
  print(notNullStr); //유니네 라이브러리

  //Error: The value 'null' can't be assigned to a variable of type 'String' because 'String' is not nullable.
  notNullStr = null;
  print(notNullStr); //null

}

 

☞ Dart 자습서 참고 사이트

https://dart-ko.dev/language/variables

 

변수

Dart의 변수에 대해 학습합니다.

dart-ko.dev

 

☞ Dart 참고 문서

https://www.yes24.com/Product/Goods/116259435

 

Must Have 코드팩토리의 플러터 프로그래밍 - 예스24

인프런 NO. 1 플러터 강사와 함께왕초보 실력을 현업 수준으로 끌어올리기저자는 왕초보 실력을 현업 수준으로 끌어올리기를 목표로 이 책을 썼습니다. 배운 이론을 곧바로 실무에 진짜 유용한

www.yes24.com