# 1.0 Hello World
void main() {
print('hello world');
}
- Dart에서 시작점을 담당하는 함수는 main 함수이다.
- 또한 Dart에서는 세미콜론을 붙여야 동작하고, 붙이지 않으면 동작하지 않는다.
# 1.1 The Var Keyword
void main() {
var name = '박장훈';
name = 1;
String name1 = "박장훈";
name1 = "박장";
}
- 변수 선언에서는 var와 각 타입을 명시적으로 지정할 수 있다.
- var에서는 처음 지정된 타입을 유지해서 값을 변경할 수 있다. 즉 처음에 문자열을 할당하고, 정수를 할당할 수 없다.(지역변수에서 사용)
- String 처럼 명시적으로 타입을 선언해서 변수를 선언할 수 있다.(클래스 프로퍼티에 사용)
# 1.2 Dynamic Type
void main() {
dynamic name;
if (name is String) {
name.
}
if (name is int) {
name.
}
}
- dart에서는 dynamic이라는 타입을 도입해서 어떤 데이터 타입이든 할당할 수 있다.
- is 연산을 통해 타입을 확인해서 타입이 확인되면 해당하는 기능에 대한 함수 사용이 가능하다.
- Flutter에서 서버에서 데이터를 응답해서 가져올 때, 많이 사용한다.
# 1.3 Nullable Variables
NullSafety: 어떤 변수 혹은 데이터가 null이 될 수 있음을 명시한다.(Null에 대한 처리)
Null: 부재, 아무것도 존재하지 않음
Nullable를 지정하기 위해서는 타입 우측에 '?'를 붙인다.

- 위 코드에서 인자로 null을 보내면 isEmtpy 함수에서 string이 null이기 때문에, RuntimeError가 발생한다.
void main() {
String? name = "박장훈";
name = null;
if (name != null) {
print(name.isNotEmpty);
}
name?.isNotEmpty;
}
위처럼 name이 null이 아닌 것을 검사하면, 컴파일러는 name이 null이 될 수 없다고 판단하고, String의 메소드를 사용하게 한다.(null이 아닐 때, 참조 되게 함)
변수 우측에 ?를 사용해서, name이 null이 아닐때 메소드나 속성을 호출하는 방법도 존재
# 1.4 Final Variables
void main() {
//final name = "park";
final String name = "park";
name = "lee";
}
final을 사용해서 할당한 변수를 다시 할당할 수 없게 지정할 수 있다.
또한 Dart 컴파일러가 타입을 추론해서 할당할 수 있지만, 타입을 명시해서 사용할 수 있다.
# 1.5 Late Variables
late는 초기 변수에 값을 초기화 하는 것이 없이 선언할 수 있게 해준다.
final과 같이 사용해서, 한번 초기화되면 다시 할당할 수 없게 만들 수 있다. 이에, 실수를 방지할 수 있으며, api를 요청해서 응답으로 데이터를 받아올때 많이 사용한다.(API 작업을 수행할 때)
void main() {
late final String name;
name = "park";
name = "lee";
}

변수를 초기화하지않고, 참조해서 사용하려고 하면, 접근하지 못하게 막아준다.
# 1.6 Constant Variables
const: 상수의 의미이며, 컴파일 타임(컴파일이 되는 시점)에 알고 있어야하는 값을 지정
컴파일할 때 알고 있어야하는 값에 사용
앱 스토어에 올리기 전에 알고 있어야하는 값들은 const로 지정
출처 및 참고자료
Dart 시작하기 – 노마드 코더 Nomad Coders
Flutter 앱 개발을 위한 Dart 배우기
nomadcoders.co
'Development > Dart' 카테고리의 다른 글
| [Dart] #4 Classes (0) | 2025.03.18 |
|---|---|
| [Dart] #3 Functions (0) | 2025.03.10 |
| [Dart] #2 Data Types (0) | 2025.03.10 |