Dart 시작하기 – 노마드 코더 Nomad Coders
Flutter 앱 개발을 위한 Dart 배우기
nomadcoders.co
void main
void main 안에 적어야 하고, 문장 끝에 세미콜론을 꼭 써야 한다.
변수
변수는 업데이트 될 수 있다. 단, 값을 업데이트 할 때 변수의 타입이 같아야 한다.
1. var
함수나 메소드 내부에 지역 변수를 선언할 때 사용
var name = '사과'; // dart 컴파일러는 name이 String(문자열) 타입이라는 것을 알고 있음
name = 1; (x)
name = bool; (x)
name = true; (x)
name = 'hello'; (o)
2. 변수의 타입 지정
class에서 변수나 프로퍼티를 선언할 때 사용
String name = '사과';
dynamic type
dynamic : 여러가지 타입을 가질 수 있는 변수에 사용하는 키워드
1. 변수의 타입을 알 수 없을 때 사용
dynamic name; //dynamic으로 선언
if(name is String){
//이 블럭 안에서는 name의 타입이 String으로 확정
}
if(name is int){
}
2. 선언 후 다른 타입을 저장해야 할 때 사용 가능
var는 선언 후 다른 타입을 저장할 수 없지만, dynamic은 다른 타입도 저장할 수 있다.
null safety
null safety: 어떤 변수가 null이 될 수 있음을 명시함
String name = '사과';
name = null; // error
대신
String? name = '사과';
타입 이름 뒤에 ?를 써주면 name 변수가 null이 될 수도 있다는 말.
따라서 name = null 문장에서 에러가 뜨지 않는다.
void main() {
String? name = '사과';
name = null;
// name.length; // error
name?.length; // 정상동작. name이 null이 아닐 때만 length 동작을 함
}
final
final name = '사과';
name = '바나나'; // error. 수정 불가
name은 딱 한번만 선언될 수 있다.
late
late final name String name;
late는 초기 데이터 없이 변수를 선언할 수 있게 해준다.
// 다른 작업(ex: api 작업)을 하다가
name = '사과';
데이터를 나중에 넣을 수 있다.
- flutter에서 API와 작업할 때 많이 사용함.
const
const는 final과 비슷하다.
차이점은 const는 컴파일 할 때 알고 있는 값에 사용한다는 것.
const API = '121212';
final API = fetchApi(); // 컴파일러는 변수의 값을 모르기 때문에 이 때는 const가 아니라 final을 써준다.
- 사용자가 화면에서 입력해야 하는 값 => final, val
- 앱에서 사용할 상수 (ex: max_allowed_price) => const