언어

[dart] 다트의 기본문법-1

STUFIT 2023. 10. 24. 12:59
반응형

이번에 사이드 프로젝트를 하는데, 기존의 웹 방식이 아닌 앱 배포를 목표로 사이드 프로젝트를 진행하게 되었다.

나는 node.js 백엔드 개발자기 때문에 사실 react native가 자바스크립트 기반이기 때문에 RN을 채택할까 했지만 이번 기회에 flutter를 사용해보고 싶어서 dart를 공부하게 되었다.

앞으로는 dart를 공부하면서 배우는 기본적인 문법에 대해 작성하려 한다.

기본적으로 내가 살짝 공부한 dart는 파이썬, 자바스크립트, 자바를 합쳐놓은 듯했다. 그래서 그런지 dart라는 언어가 낯설지 않고 되게 쉽게쉽게 이해하며 공부했다.

먼저 이번에는 기초적인 것부터 적으려 한다.

먼저 dart는 main이라는 함수 내에서만 작동하므로 main 함수를 선언 후 그 안에서 코드를 작성하도록 하겠다.

1. 변수

dart에서는 자바와 마찬가지로 타입을 선언해줘야 한다. 타입을 선언하는게 예전에 파이썬을 할 때에는 되게 힘들었는데 지금은 자바를 하고 나니 굉장히 익숙해져 있다.

- 주요 type

1) int : 정수

2) double : 실수

3) String : 문자열

4) bool : true 또는 false

기존에 자바스크립트에서는 console.log, 자바에서는 System.out.printIn(), 파이썬은 print() 를 사용하는데, dart에서는 파이썬과 마찬가지로 print() 를 사용한다.

void main() {
	int myAge = 26;
    double myHeight = 181;
    String myName;
    bool military = true;
    myName = "Kwanyoun Lee"
    
    print(myAge);
    print('나의 나이는 $myAge 이고 키는 ${myHeight} 입니다.')
    
}

${변수명} 로 표현해도 되고 $변수명 으로 써도 무관하다.

그리고 다트에서는 스네이크케이스(_) 말고 카멜케이스(대문자 섞는것)을 사용하는 것을 추천한다.

- 자동 형변환 지원하지 않음

: dart에서는 자동 형변환을 지원하지 않는다.

void main() {
	int myAge = 10;
	double myReal = 20;
	myReal = "안녕"; // double 타입인데 String이 와서 에러발생
}

- 특수 타입

1) num : int와 dobule 모두 대입 가능하다.

2) var : 특정 타입을 지정하지 않고, 해당 변수에 대입하는 값을 기반으로 타입이 지정된다.

   2-1) 동적 타입 : var 변수명; 으로 선언하면, 다양한 타입의 값을 대입할 수 있다.

void main(){
	var hi;
    hi = 1;
    hi = "변경!";
}

   2-2) var 변수명 : var 변수명 = x; 처럼 값을 선언하면 해당 값에 맞는 타입으로 고정되어 그 이후에는 다른 타입의 값을 대입할 수 없다.

void main(){
	var real = 121;
    real = "변경불가"; // 위에서 real은 int형으로 에러발생함.
}

3) dynamic : 모든 타입의 데이터를 대입할 수 있다.

void main(){
	dynamic wow;
    wow = 1;
    wow = "진짜진짜";
}

4) final, const  : 두 가지 모두 불변의 고정값인 변수를 사용할 때 사용한다. 두 개의 차이점이라고 한다면, final은 런타임 시점에 고정값이 대입되고, const는 컴파일 시점에 고정 값이 대입된다.

void main(){
	final String finalType = "안녕";
    const String constType = "하세요";
    
    finalType = "얍"; // 변경안됨
    constType = "변해라"; // 변경안됨
    
    final wow;
    wow = "으악"; 
    wow = "으악2"; // 변경안됨
    
}
반응형