Front/Flutter

Dart 기초 공부

saramnim 2023. 10. 19. 13:27
728x90

Dart

Google에서 개발

객체지향 프로그래밍 언어

두 가지의 컴파일러(JIT, AOT)

강력한 타입 시스템

 

컴파일러

JIT(Just In Time)

코드 실행 시점에 컴파일 -> 빠른 개발/디버깅(Hot-Reload / Hot-Restart 구현 시 사용)

AOT(Ahead Of Time)

미리 컴파일 -> 코드 내부 보호, 높은 실행 속도, 여러 플랫폼에서 실행하도록 바이너리 파일 생성

 

다트 사용

Dart Pad(Web Browser)

Android Studio or IntelliJ

VS Code

 

Dart에서 변수는 선언과 동시에 타입을 정해 선언을 한다.

기본형 / 자료형(List, Set, Map) / 확장형(Object, Enum, Future, Stream)

var(타입 고정) / Dynamic(타입이 언제든 변환)

const(컴파일 시점에 상수 처리) / final(프로그램 진행 중에 상수 처리)

 

Dart 연산자

Null Safety => Null 값에 대한 안정성을 위해 도입

Nullable Type(int?)

Null을 허용하는 타입
변수 뒤에 ? 을 붙여 활용

Non-nullable Type(int!)

Null을 비허용하는 타입

변수 뒤에 !을 붙여 활용

해당 값이 null인 경우 에러 발생

 

변수 선언

String str1 = 'str1';

bool bool1 = true;

int num1 = 2;

 

int? num1;
int num2 = 10;
print((num1 ?? 5) + num2)
// 15
num1 = 5;
print(num1! + num2)
// 15

??의 경우, 앞의 값이 null이면 뒷값인 5를 num1에 대입하게 된다.

 

클래스

객체를 만들기 위한 템플릿

필드 / 메서드 - 클래스 내부 선언된 데이터 / 함수

생성자 - 클래스 인스턴스 생성 시 사용되는 코드 

Default / Named / Redirecting / Const / Factory Constructors

기본 / 임의 / 초기값 / 상수 / 매번 새로운 인스턴스를 만들지 않는 생성자

 

기본 생성자

void main() {
	Point point = Point();
    print(point); // Instance of 'Point'
}

class Point {
	double? x;
    double? y;
}

 

임의 생성자

void main() {
	Point point = Point(2, 2);
    print(point); // Instance of 'Point'
    print(point.x); // 2
    
    Point aPoint = Point(3, 3);
    Point bPoint = Point(1, 10);
    print(aPoint.y); // 3
}

class Point {
	double? x;
    double? y;
    Point(this.x, this.y);
}
728x90
반응형