DartPad에서 설치 없이 연습 가능
노마드코더 Dart 시작하기에서 무료 수강 가능
main
함수는 모든 Dart 프로그램의 Entry pointvoid main() {
print('hello world');
}
var
키워드로 변수를 생성void main() {
var name1 = '니꼬';
String name2 = '내꼬';
}
void main() {
dynamic name = '니꼬';
name = 12;
name = true;
}
void main() {
dynamic name = '니꼬';
// name. 사용 가능한 욥션이 몇개 안뜸
if(name is String) {
// name. String 타입 관련 옵션 뜸
}
if(name is int) {
// name. int 타입 관련 옵션 뜸
}
}
// Without null safety:
bool isEmpty(String string) => string.length == 0;
main() {
isEmpty(null);
}
nico(변수)
가 String일 수도, null일 수도 있다는 것을 타입 뒤에 ?
로 명시nico(변수)
를 사용하기 전에 null이 아님을 확인해 줘야 함void main() {
String? nico = '니꼬';
nico = null;
if (nico != null) {
nico.isNotEmpty;
}
// 단축
nico?.isNotEmpty;
}
final
키워드를 사용하면 한 번 정의된 변수를 수정할 수 없게 함const
랑 똑같음void main() {
final String nico = '니꼬';
final nika = '니카';
}
late
는 final
이나 var
앞에 붙여줄 수 있는 수식어late
는 초기 데이터 없이 변수를 선언할 수 있게 해줌void main() {
late final String name;
// print(name) 할당전 접근 불가능
// do something, go to api
name = 'nico';
// name = '12' final이라서 불가능
}
const
키워드, 상수이므로 final과 마찬가지로 변경 불가능void main() {
const API = fetchApi(); // 이건 오류
final API = fetchApi(); // 이건 됨
}