기존 언어들과 다른 부분의 변수들에 대해 학습하고 기록했다.
- Dart도 많은 다른 언어들과 비슷하게 main 내부에서 실행된다.
주의) 세미콜론 ( ; ) 을 반드시 작성해야 한다.
dart에서는 일부러 세미콜론을 안쓰는 경우가 있다!
- var
함수나 메소드 내부에 지역 변수를 선언할 때에는 var를 사용한다
ex) var name = 'skt';
클래스에서 변수나 프로퍼티를 선언할 때에는 타입을 지정하여 변수를 선언하는 방식을 사용한다.
- dynamic
여러 가지 타입을 가질 수 있는 변수를 선언할 때 사용한다.
void main(){
var name;
name = 'nico';
name = 12;
name = true;
} //가능
//flutter나 json으로 작업하다 보면 변수 타입을 모르는 경우가 생기는데
//그런 경우에 dynamic이 유용하다.
void main(){
dynamic name;
name. //했을 때 메소드가 많지 않다 == 변수 타입이 무엇인지 모르기 때문
name = 'nico';
name = 12;
name = true;
} //가능
dynamic은 정말 필요할 때만 사용해야 한다!!
- null safety
개발자가 null값을 참조할 수 없도록 하는 것이다.
만약 null을 참조하여 사용하면 사용자가 사용하는 중에 오류가 일어난다.
컴파일러로 확인이 안되기 때문이다.
따라서 dart에서는 null이 될 수 있는 값을 명시적으로 표현해준다.
void main(){
String nico = 'nico';
nico = null;
//불가능
}
void main(){
String? nico = 'nico';
nico = null;
//?를 작성하여 컴파일러가 알게 한다.
nico.length // -> null이 될 수 있다고 알려주면서 오류
if(nico != null){ //null이 아닌 것을 확인시켜준다
nico.isNotEmpty; //가능하다!!
}
}
void main(){
String? nico = 'nico';
nico = null;
nico?.isEmpty; //이렇게 작성도 가능 nico가 null이면 isEmpty 호출하지 않는다
}
변수를 string과 nullable로 만들고 싶을 때 사용할 수 있다.
대부분의 변수는 non-nullable이다!
- final
한 번 정의된 변수를 수정할 수 없게 만들기 위해 사용한다.
void main(){
final name = 'nico'; //const와 유사한 기능
name = 'nico';
}
- late
late는 final이나 var 앞에 붙여줄 수 있는 수식어이다.
초기 데이터 없이 변수를 선언할 수 있게 해준다.
void main(){
late final String name; //데이터 없음
..뭔가를 해서 데이터 받음
name = '데이터'; //final이라 수정 불가
}
데이터를 넣어줘야지 메소드 등을 사용할 수 있다.
따라서 그 전에 사용하고자 하면 dart가 막아준다.
보통 API값을 받으 그때 변수에 데이터를 할당하여 사용한다.
flutter로 data fetching을 할 때 유용하다.
- const
dart에서의 const는 compile-time-constant를 만드는 것으로
원래 알고 있던 const와 다르다.
즉, 컴파일 할 때 알고 있는 값에 사용하는 것이다.
사용자가 입력해야 하는 값이라면 final이나 var이 되어야 한다.
dart 가이드에 따르면 변수는 주로 var 키워드로 사용하고
주로 사용했던 타입 지정 변수는 class의 프로퍼티 작성에 사용하는 것이 권장된다고 한다.
실전에서 직접 써보며 금방 익힐 수 있을 거 같다!
'FE개발 공부' 카테고리의 다른 글
| 6. Flutter 소개 (0) | 2025.10.02 |
|---|---|
| 5. Dart의 클래스 (0) | 2025.09.27 |
| 4. Dart의 함수 (0) | 2025.09.26 |
| 3. Dart의 데이터 (0) | 2025.09.25 |
| 1. Dart 소개 (0) | 2025.09.24 |