반응형

 

1. 변수

변수 선언

Dart에서는 변수 선언 시 var, final, const 키워드를 사용합니다.

  • var: 타입을 명시하지 않고 변수 선언 시 사용하며, 초기화 시 타입이 결정됩니다.
  • final: 한 번 할당되면 변경할 수 없는 변수입니다.
  • const: 컴파일 타임 상수로, 한 번 할당되면 변경할 수 없습니다.
var name = 'Bob'; // 타입 추론
String name = 'Bob'; // 명시적 타입 선언
final name = 'Bob'; // 한 번만 할당 가능
const pi = 3.14; // 컴파일 타임 상수

데이터 타입

 

 

Null safety

String? nullableName; // null 가능
String nonNullableName = 'Bob'; // null 불가능

 

데이터 타입

  • 기본 데이터 타입:

Dart는 정적 타입 언어로, 기본 데이터 타입이 있습니다.

  • int: 정수 타입
  • double: 부동 소수점 타입
  • String: 문자열 타입
  • bool: 논리 타입
  • List: 배열 타입
  • Map: 키-값 쌍 타입
int number = 42;
double height = 1.75;
String greeting = 'Hello, Dart!';
bool isVisible = true;
List<int> numbers = [1, 2, 3, 4];
Map<String, int> ages = {'John': 30, 'Jane': 25};

컬렉션

List<int> numbers = [1, 2, 3];
Set<String> uniqueNames = {'Alice', 'Bob', 'Charlie'};
Map<String, int> scores = {'Alice': 90, 'Bob': 85};
 

함수

  • 함수 선언과 사용
int add(int a, int b) {
  return a + b;
}

// 화살표 함수
int multiply(int a, int b) => a * b;

// 선택적 매개변수
void greet(String name, {String? greeting}) {
  print('${greeting ?? 'Hello'}, $name!');
}

// 기본값 매개변수
void introduce(String name, {int age = 30}) {
  print('$name is $age years old.');
}

 

객체 지향 프로그래밍 개념

  • 클래스와 객체:

Dart는 객체 지향 언어로, 클래스와 객체를 지원합니다.

클래스는 객체의 청사진이며, 객체는 클래스의 인스턴스입니다.

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void introduce() {
    print('My name is $name and I am $age years old.');
  }
}

var person = Person('Alice', 25);
person.introduce();

상속

Dart에서는 상속을 통해 클래스를 확장할 수 있습니다.

class Student extends Person {
  String school;

  Student(String name, int age, this.school) : super(name, age);

  @override
  void introduce() {
    super.introduce();
    print('I study at $school.');
  }
}

인터페이스와 추상 클래스:

추상 클래스는 직접 인스턴스를 생성할 수 없으며, 다른 클래스가 이를 상속받아 구현해야 합니다.

abstract class Shape {
  double getArea();
}

class Circle implements Shape {
  double radius;

  Circle(this.radius);

  @override
  double getArea() => 3.14 * radius * radius;
}

믹스인

mixin Logger {
  void log(String message) {
    print('LOG: $message');
  }
}

class LoggableStudent extends Student with Logger {
  LoggableStudent(String name, int age, String school) : super(name, age, school);

  void study() {
    log('Studying...');
  }
}

 

 

요약

  • 변수와 데이터 타입: var, final, const 키워드를 사용하여 변수를 선언하며, 기본 데이터 타입으로 int, double, String, bool, List, Map 등이 있습니다.
  • 함수: Dart에서는 함수도 객체로 취급되며, 다양한 방법으로 함수를 선언하고 사용할 수 있습니다.
  • 객체 지향 프로그래밍: 클래스와 객체를 사용하며, 상속, 추상 클래스, 인터페이스, 믹스인 등 객체 지향 개념을 지원합니다.

 

 

  1. Dart 공식 웹사이트
    • URL: https://dart.dev
    • 이 사이트는 Dart에 대한 모든 정보의 중심지입니다.
  2. Dart 언어 투어
  3. Dart 프로그래밍 언어 명세
  4. Dart API 참조
  5. Dart 패키지
    • URL: https://pub.dev
    • Dart와 Flutter 패키지의 공식 저장소입니다.
  6. DartPad
    • URL: https://dartpad.dev
    • 브라우저에서 직접 Dart 코드를 작성하고 실행해볼 수 있는 온라인 도구입니다.
  7. Dart 튜토리얼
  8. Effective Dart
반응형

+ Recent posts