0. Why Dart?
1) just-in-time 컴파일 제공 ; 코드의 결과를 화면으로 바로 확인 가능
+ ahead-of-time 컴파일도 제공 ; 다른 CPU 아키텍처에 맞춰서 컴파일된 바이너리를 빠르게 만들 수 있음
2) flutter와 dart 팀 간의 협력 관계 ; 프레임워크(flutter)가 필요하다면 언어(dart)가 최적화 해줌
1. The Var Keyword
변수 선언 방법
1) var 사용 (권장)
함수나 메소드 내부에서 지역변수 선언할 때
- 컴파일러가 변수 타입 추론 해줌
2) 명시적 타입 지정
class에서 변수나 property 선언할 때
➕ 변수 update 가능 (동일한 타입의 값 한정)
2. Dynamic Type
💡 dynamic type이란,
여러 타입을 가질 수 있는 변수에 쓰는 키워드
❓ 언제 쓰일까
해당 변수의 타입을 알 수 없을 때 주로 사용 (ex. json 작업할 때)
❓ 어떻게 쓸까
변수를 선언할 때, 1) dynamic 키워드 사용 or 2) 값 지정 X or 3) 타입 지정 X
⭐ 사용하지 않는 것을 권장, '정말 필요할 때만' 사용하자!
3. Nullable Variables
dart는 null safety 기능을 제공한다.
Null Safety는 개발자가 null값을 참조할 수 없게 하는 것이다.
⭐ 기본적으로 모든 변수는 non-nullable(null이 될 수 없음)이지만,
변수의 타입 바로 뒤에 '?' 를 붙임으로써 그 변수가 nullable이 됨
4. Final Variables
💡 final로 변수를 사용하면 그 변수는 수정할 수 없다.
javascript에서의 const와 같음.
5. Late Variables
❓ 언제 사용할까
초기 데이터 없이 먼저 변수를 생성하고, 추후에 데이터를 넣을 때 사용한다.
➡️ flutter로 data fetching할 때 유용!
➡️ late로 변수 만들고, API에 요청을 보낸 뒤, API에서 값을 보내주면 그 응답값을 late 변수에 넣어 사용할 수 있다.
void main() {
late final name;
print(name); // name 변수에 접근 불가
}
➡️ 이렇게 사용하면, null safety 기능과 비슷하게 사용가능!
⭐ 정의해주고 싶은 무언가가 있는데, 데이터가 아직 없다면 그때 사용하자.
6. Constant Variables
const는 javascript에서의 const와 다름!
💡 compile-time constant를 만들어준다.
컴파일할 때 알고 있는 값을 사용해야 한다.
⭐ 어떤 값인지 모르고, 그 값이 API에서 오거나, 사용자가 화면에서 입력해야 하는 값이라면
-> final or var ... (O) / const (X)