Search
Duplicate
moon
sun

기초 문법

기초 문법

변수
타입
Null Safety
상수
연산자
제어문
조건문
반복문

변수

💡
데이터(값)를 저장하는 메모리 공간
✅ Dart에서는 변수명을 카멜 케이스(CamelCase)로 작성하는 것이 관례입니다.

변수 선언

var 변수명;
Dart
복사

변수 초기화

변수명 =;
Dart
복사

변수 선언 및 초기화

var 변수명 =;
Dart
복사

타입

💡
데이터(값)의 형태
종류
타입 키워드
설명
숫자형
int
정수형 데이터를 나타냅니다.
-
double
부동 소수점 숫자(실수)를 나타냅니다.
-
num
int, double 의 상위 타입
문자형
String
문자열을 나타냅니다.
불리언
bool
참(true) 또는 거짓(false) 값을 나타냅니다.
추론형
var
변수를 선언할 때 초기값에 따라 타입을 추론합니다.
-
dynamic
모든 데이터 타입을 가질 수 있는 동적 타입입니다.
컬렉션
List
순서가 있는 리스트(배열)를 나타냅니다.
-
Set
중복되지 않는 항목들의 집합을 나타냅니다.
-
Map
키-값 쌍으로 이루어진 맵(딕셔너리)을 나타냅니다.

타입 계층

Null Safety

💡
변수나 객체가 null 값을 가질 수 있는지 여부를 명시적으로 관리하여 null 참조 오류를 방지하는 기능
널 허용 타입 (Nullable types)
Null 체크
late 키워드

널 허용 타입 (Nullable types)

💡
타입? - 타입 뒤에 ? 를 붙이면 해당 변수나 객체가 null 값을 가질 수 있음을 의미합니다.
int? nullIntNumber; String? nullString;
Dart
복사
✅ Dart 2.12 버전 이후에는 널 안전성을 강화하기 위해 타입 뒤에 ?를 사용하여 널 허용 타입을 지원합니다.

Null 체크

💡
nullable 타입의 변수를 사용할 때는 null 체크를 해야 합니다.
⛔ flutter 에서는 널 허용 타입을 Null 체크 하지 않고 접근하면 “컴파일 에러” 가 발생합니다.
Null 체크 예시
String? name; if (name != null) { print(name.length); // 안전하게 name을 사용할 수 있음 }
Dart
복사
?? (null 병합 연산자): null 값을 대체할 기본값을 제공할 수 있습니다.
String? name; String displayName = name ?? 'Guest';
Dart
복사
?. (null-aware 접근 연산자): 객체가 null이 아닌 경우에만 해당 멤버에 접근합니다.
String? name; print(name?.length);
Dart
복사
??= (null 병합 할당 연산자): 변수가 null인 경우에만 값을 할당합니다.
String? name; name ??= 'Guest';
Dart
복사

late 키워드

late int lateNumber;
Dart
복사
late 키워드는 변수의 초기화를 나중에 하겠다고 선언합니다.
비동기 통신을 통해서 서버로부터 데이터를 받아 올 것이 확정되어 있는 경우에 주로 사용

상수

const
final
선언 시점
컴파일 타임 상수
런타임 상수
값 할당
선언 시에만 값 할당 가능
선언 후에 값 할당 가능
할당 가능 여부
컴파일 타임에 결정된 값만 가능
런타임에 결정된 값 할당 가능
활용 예시
상수 문자열, 숫자 등 리터럴 값 사용
설정 후 변경하지 않아야 하는 값 지정

연산자

기본 연산자

연산자
설명
예시
+
더하기
a + b
-
빼기
a - b
*
곱하기
a * b
/
나누기
a / b
%
나머지
a % b
++
증가
a++ 또는 ++a
--
감소
a-- 또는 --a
+=
더하고 할당
a += b
-=
빼고 할당
a -= b
*=
곱하고 할당
a *= b
/=
나누고 할당
a /= b
%=
나머지를 계산하고 할당
a %= b

타입 연산자

연산자
설명
예시
as
타입 변환
var x = a as int
is
타입 체크
if (x is int)
is!
타입이 아닌지 체크
if (x is! String)

Null 연산자

연산자
설명
예시
??
null일 때 기본값 설정
var y = x ?? defaultValue
?.
null 체크 후 접근
var length = str?.length
??=
null일 때만 값 할당
a ??= b
!
Non-null 단언 연산자
a!
?? 연산자는 왼쪽 피연산자가 null이 아니면 왼쪽 값을, null이면 오른쪽 값을 반환합니다.
?. 연산자는 좌변이 null이면 무시하고 오른쪽 피연산자에 접근하지 않습니다.
??= 연산자는 왼쪽 피연산자가 null이면 오른쪽 값을 왼쪽 변수에 할당하고, 그렇지 않으면 왼쪽 값은 변경되지 않습니다.
! 연산자는 Non-null 단언 연산자로, 변수가 null이 아님을 단언합니다. 사용 시 주의가 필요하며, null일 경우 예외가 발생할 수 있습니다.

제어문

조건문
반복문

조건문

if-else
int x = 10; if (x > 0) { print('양수입니다.'); } else if (x < 0) { print('음수입니다.'); } else { print('0입니다.'); }
Dart
복사
switch
String fruit = 'apple'; switch (fruit) { case 'apple': print('사과입니다.'); break; case 'banana': print('바나나입니다.'); break; default: print('알 수 없는 과일입니다.'); }
Dart
복사

반복문

for
for (int i = 1; i <= 5; i++) { print('현재 숫자는 $i입니다.'); }
Dart
복사
while
int count = 0; while (count < 3) { print('카운트: $count'); count++; }
Dart
복사
do-while
int num = 5; do { print('숫자: $num'); num--; } while (num > 0);
Dart
복사