Dart/Flutter

Flutter로 앱 만들기 - 6. Dart의 기본 문법 정리

wtc 2024. 6. 20. 15:58

Flutter에서 사용되는 Dart 언어

Flutter로 앱을 만들기 위해서는 Google에서 개발한 Dart 언어를 사용해야한다.

 

Dart를 테스트하기 위한 환경은 DartPad에서 가능하다.

 


기본 문법

변수와 데이터 타입

선언 : var, final, const

타입 : int, double, string, bool, List, Map

 

변수 선언 후 출력 예시 :

void main(){
	var i; //변수 선언, var로 선언된 변수는 실행 시 자료형 추측
    
    i = 3; //변수 안에 값 할당
    
    print(i); // 3출력
    print('i는 $i 입니다.'); // 'i는 3입니다.' 출력
}

 

  • var : 추측가능한 변수를 선언
  • final : 변경 불가능 변수
  • const : 컴파일 시 상수
  • int : 정수형 타입
  • double : 소수형 타입
  • String : 문자열 타입
  • bool : 참, 거짓 타입
  • list : 데이터 배열 타입
  • Map : 키:값 타입

 

List 예시

void main() {
  List<String> name = ['charile', 'alex', 'james'];

  for (int i = 0; i < 3; i++) {
    String names = name[i];
    print(names);
  }
}

 

결과:

 

Map 예시

void main() {
  Map<String, int> age = {'charile': 20, 'alex': 16, 'james': 18};
  
  age.forEach((key, value) {
     print('$key의 나이는 $value'); 
  });
}

forEach((){}) 함수는 Map의 각 요소에 키와 값을 반복해서 나타내주는 메서드

결과:

 

 

조건문 과 반복문

조건문 예시

if, else if, else

void main(){
  String name = "relly";
  
  if (name == 'wtc') {
    print('이름은 $name입니다.');
  }
  else if(name == 'relly'){
    print('이름은 $name입니다.');
  }
  else{
    print('이름이 없습니다.');
  };
}

 

결과:

반복문 예시

for

void main(){
  for (int i = 1; i <= 10; i++){
    print('현재 번호: $i');
  };
}

 

결과:

while

void main() {
  int i = 0;
  while (i < 10) {
    print(i);
    i++;
  }
}

 

결과:

do-while

void main() {
  var i = 1;
  do{
    print('$i번 실행');
    i++;
  }while(i < 5);
  
  do{
    print('한번만 실행');
    i++;
  }while(i > 10);
}

 

결과:

 

while 과 do-while의 차이점

while은 조건을 검사하고 코드를 실행하지만, do-while은 코드를 한번은 실행하고 조건을 검사한다.

 

배열

List

 

List의 데이터들은 대괄호로 감싼다.

순서가 있기에 인덱스를 사용해 List의 데이터에 접근할 수 있다.

void main() {
  List<String> color = ['red', 'blue', 'yellow'];
  
  for (int i = 0; i < 3; i++){
    print(color[i]);
  };
}

 

 

결과:

Map

 

Liste와 다르게 중괄호로 데이터들을 감싼다.

Map은 순서가 없어 인덱스로 접근이 불가능하다.

void main() {
  Map<String,int> information = {'James':20, 'charile':18, 'nick':22};
  
  information.forEach((key, value) {
    print('$key의 나이는 $value살');
  });
}

 

반복해서 Map의 모든 키,값을 전달 받기 위해 forEach문을 사용했다.

 

또는 entries 속성을 사용해 키와 값을 반환할 수 있다.

void main() {
  Map<String,int> information = {'James':20, 'charile':18, 'nick':22};
  
 for (var entry in information.entries) {
 	print('${entry.key}의 나이는 ${entry.value}');
    };
}

 

결과: