변수
Dart에선 변수를 만드는 방법이 크게 두 가지로 나뉩니다.
변수의 타입을 선언하는 방법과 컴파일러에서 타입을 추론하게끔 선언하는 방법입니다.
- 타입 선언
- int, String, double 등
- 추론 타입 선언
- var
Dart에선 일반적으로 타입을 선언하는 것보다 var로 변수를 선언하는 것이 권장됩니다. 타입을 선언하는 것은 class 내의 property에 권장됩니다.
상수
상수를 선언하는 방법은 final과 const 두 가지로 나뉩니다.
- final
final은 다른 언어에서 사용하는 상수와 마찬가지로 선언 후 변경이 되지 않습니다. - const
const는 컴파일러가 실행될 때부터 이미 정해진 값이어야 합니다. 예를 들어, 최댓값이 정해져 있는 계산식일 때 최댓값을 const로 선언하는 것입니다. c언어의 #define 과 같은 역할을 합니다.
late
late는 final과 같은 상수값을 할당하지 않은 채로 선언할 수 있게 해주는 수식어입니다.
late final String name;
name = 'gwanson';
print(name);
//출력
//gwanson
late 수식어는 보통 API 값을 불러올 때 사용합니다.
dynamic
dynamic은 Dart에서 아주 조심스럽게 사용해야 하는 타입입니다. dynamic은 어떤 데이터가 들어올지 모른다고 선언하는 타입입니다.
Null Safety
Null Safety란 어떠한 변수가 null인지를 알 수 있게끔 선언하는 방식입니다. swift의 옵셔널과 유사합니다.
선언하는 방식은 변수의 타입에 ?
를 붙여주는 것입니다.
String? name = 'gwanson';
name = null;
if (name != null) {
print(name);
} else {
print('해당 값은 null입니다.');
}
// 출력
// 해당 값은 null입니다.