카테고리 없음

dart 문법 1

sping2 2025. 1. 11. 00:08
 

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