[TIL] Dart 기본 문법 part.1

한철희·2024년 10월 30일
0

TIL

목록 보기
56/57

개발 환경설정을 해봤고 이제 플러터에서 쓰이는
Dart라는 언어의 기본 문법을 알아보자

Dart 언어? 특징?

  • 구글에서 만든 언어
  • Flutter를 개발할 수 있다.
  • 다른 언어들과 유사한 방법으로 구현 및 사용할 수 있다.
  • null safety를 지원한다
  • JIT와 AOT 컴파일
    - 개발 할 때는 Just-In-Time (JIT) 컴파일해서 빠른 속도의 컴파일이 가능하고 결과 확인 가능
    • 배포할 때는 Ahead of Time 방식으로 성능 최적화

이 정도의 특징이 있다.
위에서 언급했듯이 Dart는 타 언어와 비슷한 사용성을 지녀서 문법이 비슷한 부분이 많이 보인다.
그래서 빠르게 핵심만 살펴보고 넘어가보자
아 참고로 ;을 끝에 꼭 붙여줘야한다.


1. 변수

변수는 어떤 값을 담는 상자라고 생각하면 이해하기 쉽다

var name = '영희';
print(name); // 영희
print(name.runtimeType); // string (문자)

Dart는 변수 타입을 자동으로 추론해줘서
위 같은 경우에 영희라는 값을 넣어줬지만 따로 자료형을 지정하지 않아도 String 이라는 값으로 인식한다.
그리고 이 경우에는 한 번 타입이 지정되면 다른 타입의 값을 할당할 수 없다

그리고 Swift의 옵셔널과 비슷한 변수도 존재한다.\
Null Safety 라고 불리는데

String? id;
print(id) // null <- 비어있음

id = "myhan601";
print(id); // myhan601

id = null;
print(id); // null

위에서 보다시피 String 자료형에 ?를 붙여서 사용한다.
String? 이런식으로 작성하는데
기본적으로 변수는 null을 허용하지 않기 때문에
처음 값이 없는 경우에 이런 변수를 사용한다
위의 id나 email 등이 예가 된다

 final String number = "1234";
  print(number); // 1234
  // number = "5678"; // final 때문에 이 코드는 실행 불가능

그리고 final 키워드를 자료형 앞에 붙여서 사용할 수도 있는데
이 경우는 한번 지정한 값을 변경할 수 없다

마지막으로 상수를 지정하는 const 키워드가 있다.

const PI = 3.14;
PI = 3.14159; // 오류 발생 (값 변경 불가)

const 키워드는 final 키워드와 마찬가지로 한번 값을 지정하면 변경할 수가 없다.

그럼 둘의 차이점이 뭐에요?? 싶은 생각이 들었다.
둘이 할당 시점에서 차이를 보이는데
final : 런타임 시점에 값을 할당
const : 컴파일 시점에 값을 할당
일단 이렇게만 이해를 했다
오늘은 전반적인 기초 문법이 우선이므로 일단은 넘어가보자


2. 자료형

위에서 보여준 String 자료형 이외에도 다양한 자료형이 존재한다.

자료형설명예시
String'과 "로 이루어진 문자열"영희", '영희'
intint = 정수3, -4
doubledouble = 실수4.5, -3.1
bool참, 거짓을 나타내는 자료형true, false
List<T>데이터를 여러개 가진 배열[1, 3, 5]
Map<K,V>딕셔너리 처럼 {key:value} 형태{'name':'영희', 'id':154'}
dynamic모든 자료형을 담을 수 있음dynamic age = "food"; age = 20;

이런 다양한 자료형들이 존재한다.


3. 흐름 제어문

Dart 는 main 함수부터 시작하여 아래로 실행된다
이때 실행되는 순서를 제어하는 문법이다.

1) 조건문

익숙한 if 문을 사용한다.

if (조건1) {
	// 조건1이 true면 실행
} else {
	// 조건1이 false면 실행
}

다른 언어와 같은 방식으로 사용하며
조건1 이 '참'일 경우에는 첫번채 중괄호 안의 코드가 동작하고
'거짓'일 경우에는 else 의 코드가 동작한다.

그리고 else if 문을 통해서 조건을 여러개 거는것도 가능하다.

if (조건1) {
	// 조건1이 true면 실행
} else if (조건2) {
	// 조건1이 false이고, 조건2가 true이면 실행
} else if (조건3) {
	// 조건1과 조건2가 false이고, 조건3가 true이면 실행
} else {
	// 조건1, 조건2, 조건3가 모두 false이면 실행
}

이런식으로 사용할 수 있다.

&& 는 And 연산자, || 는 OR 연산자도 살펴보자
And 연산자는 조건1 && 조건2 인 상황에서 양쪽 값이 모두 true일때 전체값을 true로 반환한다.
OR 연산자는 둘 중 하나라도 true 라면 전체값을 true로 반환한다.

2) 반복문

반복문은 특정 코드를 반복해서 실행하도록 하는 방법이며 for문이라고도 불린다.

for (int i = 0; i < 5; i++) {
    print('hello flutter ${i + 1}');
}

이런식으로 작성하며 아래같은 결과를 볼 수 있다.

hello flutter 1
hello flutter 2
hello flutter 3
hello flutter 4
hello flutter 5

i 값이 0부터 4까지 증가하면서 중괄호 내부의 코드를 동작시키고
i가 5가 되는순간 i < 5; 조건에 부합하게 되면서 반복문을 종료한다.


함수와 클래스 내용은 다음 포스팅에서 작성하도록 해보자

profile
초보 개발자 살아남기

0개의 댓글