// 1. var 키워드 사용 선언과 동시 할당
void main () {
var name = 'park';
var age = 31;
// var 키워드를 사용해도 dart 에서 자료형 알아서 추론해준다.
// 변수 선언시 var 키워드 사용이 제일 권장된다.
// ex) 함수 내 변수 선언, 메소드 내 변수 선언 등
// var 키워드 사용시 자료형이 동일한 경우 변수의 값 자유롭게 변경 가능
name = 'lee'; // OK
age = 30; // OK
name = 32; // Error
age = 'kim'; // Error
}
// 2. var 키워드 외에 기본 자료형 키워드 등을 사용
void main () {
String name = 'park';
int age = 31;
// 관습적으로 class 내 property 를 정의할 때 자료형 키워드 사용
// var 키워드 사용 변수 선언과 동일하게 자료형이 동일한 경우 변수의 값 자유롭게 변경 가능
name = 'lee'; // OK
age = 30; // OK
name = 32; // Error
age = 'kim'; // Error
}
var
와 dynamic
키워드가 사용됩니다.dynamic
은 동적으로 타입변경이 됩니다.dynamic
== JS의 var
var
은 초기화시 타입을 추론해 하나의 타입으로 지정됩니다.var
!= JS의 `var'dynamic
키워드 사용시 타입안전성을 조금 낮추어 보다 유연한 프로그래밍을 짤 수 있습니다.// 변수의 타입을 모를때 혹은 여러 타입을 가지는 변수가 필요할 때 사용합니다.
// 기본적으로 사용이 지양됩니다. 다만 null safety 적용됩니다.
void main() {
dynamic anything1;
var anything2;
anything1 = 'park';
anything1 = 31.02;
anything1 = true;
anything1 = 'lee';
anything1 = 30;
anything1 = true;
}
const
키워드와 동일한 동작late
키워드를 사용합니다.late
키워드를 사용한 변수에 값이 할당 되지 않고 사용하려고 하면 컴파일이 안됩니다.void main() {
late var anything; // dynamic
print(anything); // Error
anything = true;
print(anything); // OK
late String name; // String
print(name); // Error
name = 'park';
print(name); // OK
}
Null
을 참조해서 문제가 생기지 않도록 기본적으로 Dart 의 변수들은 Non-Nullable
Null
이 되는가 있는 경우엔 명시를 해줘야함void main() {
String non_nullable;
non_nullable = null; // Error
String? nullable;
nullable = null; // OK
nullable.isEmpty; // Error
nullable?.isEmpty; // OK
}
학습 중에 작성된 내용이므로 잘못되거나 부족한 내용이 있을 수 있습니다.