자기개발

[Dart] 기본 문법 - 1탄 본문

개발

[Dart] 기본 문법 - 1탄

트렌드킴 2025. 1. 8. 21:36
반응형

다트를 공부하기 위해서는 SDK를 설치하거나 다트패드 웹 에디터를 이용할 수 있다.

https://dartpad.dev/

 

DartPad

 

dartpad.dev

 

1. 주석

주석은 코드에 간략한 설명을 기재하는 것으로 코드 실행에서 제외 된다.

 

2. 변수

변수는 어떤 값을 담고 있고 이 값을 변경할 수 있는 것을 말한다.

 

3. 타입

다트에서 제공하는 기본 타입은 아래와 같다.

구분 타입 설명
숫자형 int 64비트 이하의 정수형 숫자
네이티브 플랫폼에서는 -2^63~2^63-1
웹 플랫폼에서는 -2^53~2^53-1
double 64비트 부동소수점 숫자
IEEE 754 표준을 따름
num int, doble 모두를 포함하는 상위 타입
문자형 String UTF-16 문자열
불리언 bool true 또는 false 값을 가지는 불리언 타입
추론형 var 타입 미지정
초기값 지정시 타입 결정
타입 변경 불가
dynamic 타입 미지정
타입을 특정하지 않음
타입 변경 가능
컬렉션 List 배열과 동일
순서가 있는 객체 그룹
Set 순서가 없고 중복 없는 집합
Map (key, value) 형태의 집합

 

* 숫자형

정수형과 실수형을 곱한 값은 실수형이 되기 때문에 num1 * pi의 연산은

double 인 num3 으로 지정해야 에러가 나지 않는다.

 

num4는 num타입으로 정수형, 실수형을 모두 포함하므로 정상 처리 된다.

 

* 문자형

문자열은 큰 따옴표, 작은 따옴표 모두 사용할수 있지만 다트에서는 작은 따옴표를 권장한다.

문자열 추가도 '+'를 사용할수 있지만 사용하지 않는것을 권장한다.

 

* 불리언

불리언 타입은 true 또는 false을 받는 경우가 많습니다.

num 변수의 값은 10으로 0보다 크기 때문에 b는 true가 됩니다.

 

'&&' 는 AND 논리연사자를 의미하며 양쪽 모두가 true인 경우에 true를 반환합니다.

따라서 a는 false이고 b는 true이기 때문에 check는 false가 됩니다.

 

* 추론형

var와 dynamic은 변수 선언 시에 타입을 특정하지 않고 변수에 할당되는 값에 따라 변수 타입을 추론한다.

 

먼저 var은 초기값에 따라 타입이 결정된다.

age의 초기값을 int 값으로 선언하였는데 다시 double값을 넣으면 에러가 발생한다.

 

반면 dynamic은 어떤 타입의 값도 배정할 수 있다.

초기값이 정수형이였는데 문자열로 변경하여도 모두 정상 실행된다.

 

* 타입의 계층

다트 언어의 모든 것은 객체(Object)이고, 모든 객체는 변수에 담을 수 있다.

모든 객체는 다트의 최상위 클래스인 Object 클래스로부터 상속된다.

따라서 변수의 타입으로 Object 또는 Object? 를 지정할 수 있다.

 

* 널 허용 타입

널 허용 타입은 타입명 뒤에 '?'를 덧붙이는 것으로 정의한다.

널 불가 타입은 초기값을 설정하지 않으면 컴파일 에러가 발생한다.

 

4. 늦은 초기화

변수가 사용되기 전에 초기화 되는 확실한 경우더라도 컴파일러 에러가 발생하는 경우가 종종있다.

이러한 경우 변수 선언 문장에 late 키워드를 사용하면 에러를 조치할 수 있다.

 

5. 상수

상수는 값이 절대 변경되지 않는 객체를 의미한다.

상수 키워드 설명
const 컴파일 시에 상수로 인지함
final 한번만 값을 지정할 수 있고, 지정 이후에는 값 변경이 불가

 

상수값이 코드 작성 시점에는 알 수 없고 런타임 시에 정해진다면 final 키워드를 사용해야 한다.

 

6. 연산자

구분 연산자 비고
산술 연산자 +, -, *, /, ~/, % ~/ : 몫을 구함
증감 연산자 ++, --  
관계 연산자 ==, !=, >, <, >=, <=  
논리 연산자 &&, ||, !  
비트/시프트 연산자 &, |, ^, ~  
<<, >>, >>>  
할당 연산자 =, +=, -=, *=, /=, ~/=, %=  
&=, ^=, |=, <<=, >>=, >>>= 비트/시프트 연산자와 조합
삼항 연산자 조건 ? 표현식1 : 표현식2 조건이 참이면 표현식 1,
조건이 거짓이면 표현식2를 수행

* 산술 연산자와 할당 연산자

'+=' 는 number  = number + 1와 동일한 의미이다.

'~/' 연산자는 몫을 구하는 연산자로 100을 3으로 나눈 몫은 33이 된다.

* 증감 연산자

증감 연산자는 1씩 증가 또는 감소하는 연산자로 변수 앞(전위 연산) 또는 뒤(후위 연산)에 위치할 수 있다.

 

후위 연산은 해당 라인의 코드를 먼저 실행하고 증감을 실행하고,

전위 연산은 증감을 먼저 실행하고 해당 라인의 코드를 실행한다.

 

따라서 number은

첫 print문에서는 후위 연산이므로

print 문이 먼저 실행되어 100이 출력되고 나서 증감이 진행되어 101이 되고

 

두번째 print문에서는 전위 연산이므로

증감이 먼저 진행되어 102가 되고 print문이 실행되어 102가 출력된다.

* 관계 연산자

관계연산자는 좌항과 우항의 값이 같다/다르다/적다 등으로 비교하는 연산자로 결과값은 true 또는 false가 된다.

user와 adminUser의 값이 다르므로 결과는 else 문의 코드가 실행된다.

 

반응형