- 오늘 본 강의: 노마드 코더 > Dart 시작하기
- #1 VARIABLES
- #1.0 Hello World (03:36)
- #1.1 The Var Keyword (03:07)
- #1.2 Dynamic Type (03:35)
- #1.3 Nullable Variables (06:09)
- #1.4 Final Variables (02:08)
- #1.5 Late Variables (03:16)
- #1.6 Constant Variables (03:21)
- #1.7 Recap (07:32)
- `main()` 함수는 모든 Dart 프로그램의 entry point
- 없으면 오류가 발생하며 프로그램이 실행되지 않음
- `;` 필요
- TypeScript나 JavaScript와는 달리 Dart에서 자동으로 처리되지 않음
- Cascade operator라는 특수 기능 때문에 (DartPad.dev 또는 VSCode 등 어디에서도) 포맷터가 자동으로 처리해주지 않음
- 데이터 자료형을 정확히 선언하지 않고 `var`로 선언할 수 있다.
- 기본적으로 데이터 타입 추론 기능이 있음.
- 단, 초기에 자동으로 판별된 자료형을 따라야 함.
- 주로 함수 내 변수, 지역 변수들의 경우 `var`을 사용.
- 클래스 변수는 주로 자료형을 명시.
- 변수를 선언만 하고 아무 값도 입력하지 않을 수도 있음. (`dynamic`으로 선언하는 것도 가능)
- Python에서와 같은 동적 자료형 사용 가능.
- 변수의 자료형이 뭔지 확실하지 않을 때만 사용하고 그 외의 경우에는 사용 지양.
- 타입이 달라지는 경우를 대비하여 outer scope에서 타입 체크를 해주어야 함.
- null safety
- 원래는 `null`을 참조할 경우 앱에서 심각한 오류 발생할 수 있음. 컴파일러가 잡을 수 없음. Dart에서는 이를 방지. (버젼 2.12에서부터 도입.)
- `null`이 될 가능성이 있는 변수를 미리 nullable하게 처리 가능.
- `final`로 선언된 변수들은 값이 바뀔 수 없음.(JavaScript/TypeScript의 `const`와 비슷)
- `late`은 일반 `var`/`final`/... 변수를 값 없이 선언할 수 있게 해줌. 이후에 값이 입력되면 값이 고정될 수 있음.
- `const`는 `final` 변수 처럼 값을 고정시키지만, 컴파일 때(on compile-time) 반드시 알고 있어야 하는 값.
내 Dart & Flutter 실습 코드