코딩항해기
[Flutter] Dart 기초 본문
다트 Dart
구글이 멀티 플랫폼 상에서 동작되도록 하는 앱을 위해 디자인된 객체지향 프로그래밍 언어이다. 2011년 10월 공개되었으며, C언어와 유사한 문법을 가지고 있고, Java, C#, JS와 같은 기능적 스트럭쳐를 추가한 언어라서 간결하고 강력한 기능을 지원한다.
Dart는 DVM(Dart VM)상에서 동작하거나 네이티브 컴파일링을 통해 모바일, 데스크톱, 웹 브라우저, 서버 플랫폼 상에서 어플리케이션 실행을 지원한다. 구글에서 2017년 발표한 크로스플랫폼 앱 프레임워크인 Flutter가 사용하는 언어이다.
Android Studio, Intellij, VS Code 등에서 사용할 수 있다. (IDE)
Dart 자료형
기본 자료형 | ||
int | 정수형 | 42, -1, 0 |
double | 부동 소수점 | 3.14, -0.5, 1.0 |
num | int와 double의 상위 타입 | int 또는 double 값 가능 |
bool | 불리언 | true, false |
String | 문자열 | '안녕', "Dart" |
컬렉션 자료형 | ||
List | 순서가 있는 객체 집합 | [1, 2, 3], <String>['a', 'b'] |
Set | 중복이 없는 객체 집합 | {1, 2, 3}, <String>{'a', 'b'} |
Map | 키-값 쌍의 컬렉션 | {'key': 'value'}, <String, int>{'a': 1} |
특수 자료형 | ||
dynamic | 모든 타입 허용 | 어떤 타입도 할당 가능 |
var | 타입 추론 | 초기값에 따라 타입 결정 |
final | 한 번만 할당 가능 | final name = 'Dart' |
const | 컴파일 타임 상수 | const pi = 3.14 |
Object | 모든 클래스의 기본 클래스 | 모든 객체의 상위 타입 |
Null | null 값만 가질 수 있음 | null |
기타 | ||
Runes | 유니코드 문자열 | '😀'.runes |
Symbol | 심볼 식별자 | #name |
Enum | 열거형 | enum Color { red, green, blue } |
Future | 비동기 작업의 결과 | Future<String> |
Stream | 비동기 데이터 시퀀스 | Stream<int> |
Function | 함수 타입 | void Function(String) |
기본 함수 구조
반환타입 함수이름(매개변수) { //매개변수 타입 생략 가능(명시하는 것이 좋음)
// 함수 내용
return 반환값; // 반환값이 있는 경우
}
var와 dynamic 차이
// [불가] - 문자 타입의 var 에 1 을 집어넣지 못함
var userName = 'aeco';
userName = 1;
// [가능] - 문자 타입의 dynamic 에 1 을 넣어 숫자 타입으로 변경 됨
dynamic userName = 'aeco';
userName = 1
final, const 차이
final String userName1 = 'aeco'; //런타임 때 생성
const String userName2 - 'aeco'; //컴파일 때 생성
물음표 연산자
// 타입 뒤에 ?를 명시해서 null값을 가질 수 있음
double? number1 = null;
// 타입 뒤에 ?를 명시하지 않아 에러가 남
double number2 = null;
double? number; // 자동으로 null값 지정
print(number);
number ??= 3; // ??를 사용하면 기존 값이 null일 때만 저장
print(number);
number ??= 4; // null이 아니기 때문에 기존 3이 그대로 유지
print(number);
'Front > Flutter' 카테고리의 다른 글
[Flutter] flutter dependencies version check & update (0) | 2025.05.20 |
---|---|
[Flutter] dependencies & dev_dependencies (0) | 2025.05.20 |
[Flutter] 기초 위젯 사용 (0) | 2025.05.18 |
[Flutter] flutter PowerShell 명령어 정리 (0) | 2025.05.18 |
[Flutter] VSCode 세팅하기 (0) | 2025.05.18 |