반응형

필자는 Flutter 학습을 위해 dart 언어의 문법을 학습하고자 한다. 이번 포스팅은 그 중에서도 기초 문법에 해당하는 부분에 대한 학습을 진행할 것이다.

학습 환경은 다트패드 사이트를 이용하고자 한다. https://dartpad.dev

 

DartPad

 

dartpad.dev

 

기초 문법

1. 메인 함수

다트는 프로그램 시작점인 엔트리 함수 기호로 main()을 사용한다. 이때 void는 아무값도 반환하지 않는다는 뜻이다.

main 뒤에 있는 괄호 () 안에 입력받을 매개변수를 지정할 수 있는데 괄호 안이 비어 있으면 아무런 매개변수도 받지 않는다는 것이다.

살펴보면, C언어의 메인 선언과 유사함을 알 수 있다.

 

2. 주석

주석의 경우 C언어와 같이 한 줄인 경우 //을 사용하고 여러 줄인 경우 /* */로 묶어서 사용하면 된다.

ex

// 한 줄 주석은 이런 식으로 사용하고,

/*

여러

줄은

이런

식으로

사용한다.

*/

 

3. print() 함수

print() 함수는 문자열을 콘솔에 출력하는 함수로 python의 print와 동일하다.

다만, dart 언어의 경우 print() 함수 끝에 세미콜론(;)을 꼭 해줘야 작동한다. 만약 세미콜론을 빼먹으면 에러가 출력된다.

 

4. var를 사용한 변수 선언

변수는 영어로 variable 이다. 이 단어의 앞 세글자만 사용해서 var로 많은 언어에서 변수를 선언할 때 사용한다.

즉, 변수는 var 변수명 = 값; 형식으로 선언한다.

다트에서도 변수에 값이 들어가면 자동으로 타입을 추론하는 타입 추론 기능을 제공하므로 파이썬과 동일하게 명시적으로 데이터 타입을 선언하지 않아도 된다.

 

5. dynamic를 사용한 변수 선언

var 타입은 변수의 값을 사용해서 변수의 타입을 유추하는 키워드이다. 타입을 한 번 유추하면 추론된 타입이 고정된다.

예를 들어서, 아래의 사진과 같이 변수의 타입을 문자열로 유추한 경우 문자열로 고정되어 정수형이나 실수형과 같은 숫자형 데이터 타입의 값을 저장하려 들면 에러가 발생한다.

하지만 dynamic 키워드를 사용하면 변수의 타입이 고정되지 않아서 다른 타입의 값을 저장할 수 있다. 아래의 예를 통해 확인해보자.

 

6. final/const를 사용한 상수 선언

final과 const 키워드는 상수를 선언하는 키워드이다.

즉, 한번 선언한 값은 변경할 수 없다.

그러면 final과 const는 어떤 차이점이 있을까?

final은 런타임, const는 빌드타임 상수이다. 구체적인 차이점은 아래의 예를 통해 살펴보자.

final 키워드를 사용했으니 now 값이 한 번 저장되면 추후 변경할 수 없다.

 

반면에 아래와 같이 const를 사용하면 에러가 출력된다. 왜냐하면 const로 지정한 변수는 코드를 실행하기 전에 값을 알 수 있어야 하는데 DateTime.now() 함수는 코드를 실행하고 난 후에야 알 수 있기 때문이다.

쉽게 설명하면 코드를 실행하지 않은 상태에서 값이 확정되면 const를, 실행될 때 확정되면 final을 사용하면 된다.

 

7. 변수 타입

모든 변수는 고유의 변수 타입을 갖고 있다. 물론 var 키워드를 사용하면 자동으로 변수 타입을 유추할 수 있지만 변수 타입을 직접적으로 명시해주면 코드가 더욱 직관적이므로 유지보수가 편해진다는 장점이 있다.

따라서 직접 문자열, 정수, 실수, 불리언(true, false) 타입을 지정하는 방법은 아래와 같다.

'Flutter with dart' 카테고리의 다른 글

[Flutter] WebView 위젯  (0) 2023.09.25
[Flutter] 위젯 UI 배치 연습  (0) 2023.09.24
[Flutter] 플러터 위젯 정리  (0) 2023.09.24
[Flutter] 플러터 프로젝트 구조  (0) 2023.07.19
[dart] dart(다트) - List 타입  (0) 2023.06.22