[Dart 언어강좌] 007. 기본 문법 배우기, 함수 정의 및 호출

Dart는 Google에 의해 개발된 객체 지향 프로그래밍 언어로, 다양한 플랫폼에서 사용할 수 있도록 설계되었습니다. 특히 Flutter와 함께 사용되면서 모바일 애플리케이션 개발에 혁신적인 변화를 가져왔습니다. 이 글에서는 Dart의 기본 문법, 함수 정의 및 호출 방법에 대해 자세히 살펴보겠습니다.

1. Dart의 기본 문법

1.1 변수 선언

Dart에서 변수는 var, final, const 키워드를 사용하여 선언할 수 있습니다. var는 타입 추론을 가능하게 하며, final는 한 번만 값이 할당될 수 있는 변수를 생성하고, const는 컴파일 시간에 상수로 평가되는 변수를 만듭니다.


void main() {
    var name = 'Dart';
    final age = 10;
    const pi = 3.14;

    print('Name: $name');
    print('Age: $age');
    print('Pi: $pi');
}

1.2 데이터 타입

Dart는 여러 기본 데이터 타입을 제공합니다. 주요 데이터 타입으로는 int, double, String, bool이 있습니다. 이 외에도 사용자 정의 데이터 타입을 생성할 수 있습니다.


void main() {
    int age = 25;
    double height = 5.9;
    String greeting = 'Hello, Dart!';
    bool isFlutterAwesome = true;

    print('Age: $age');
    print('Height: $height');
    print('Greeting: $greeting');
    print('Is Flutter Awesome? $isFlutterAwesome');
}

1.3 제어 구조

Dart에서는 조건문과 반복문을 통해 흐름 제어가 가능합니다. if, else, switch 문을 사용하여 조건을 처리하고, for, while, do-while 문으로 반복을 수행할 수 있습니다.


void main() {
    int number = 10;

    if (number > 0) {
        print('$number is positive.');
    } else if (number < 0) {
        print('$number is negative.');
    } else {
        print('Number is zero.');
    }

    for (var i = 0; i < 5; i++) {
        print('Iteration $i');
    }
}

2. 함수 정의 및 호출

2.1 함수 정의

Dart에서 함수는 void와 같은 반환 타입을 정의한 후 함수 이름과 매개변수를 지정하여 선언합니다. 반환값이 있는 함수는 반환 타입을 명시하고 return 키워드를 사용하여 값을 반환합니다.


int add(int a, int b) {
    return a + b;
}

void main() {
    var sum = add(5, 3);
    print('Sum: $sum');
}

2.2 익명 함수(람다 함수)

Dart는 익명 함수도 지원하여, 변수에 함수 정의를 할 수 있습니다. 이와 같은 함수는 일회성으로 사용하거나 다른 함수에 인수로 전달할 수 있습니다.


void main() {
    var square = (int x) => x * x;

    print('Square of 5: ${square(5)}');
}

2.3 고차 함수(Higher-order functions)

고차 함수는 함수형 프로그래밍 개념으로, 다른 함수를 인수로 받거나 반환하는 함수를 의미합니다. Dart에서 대표적인 고차 함수로는 map, reduce, filter 등이 있습니다.


void main() {
    var numbers = [1, 2, 3, 4];
    var squaredNumbers = numbers.map((n) => n * n);

    print('Squared Numbers: ${squaredNumbers.toList()}');
}

2.4 기본 매개변수 및 선택적 매개변수

Dart에서는 함수 매개변수를 기본값으로 설정하거나 선택적 매개변수로 정의할 수 있습니다. 기본 매개변수는 함수 호출 시 전달되지 않을 경우 기본값을 사용합니다. 선택적 매개변수는 대괄호([]) 또는 중괄호({})를 사용하여 정의합니다.


void greet(String name, [String greeting = 'Hello']) {
    print('$greeting, $name!');
}

void main() {
    greet('Dart'); // Default greeting
    greet('Dart', 'Welcome'); // Custom greeting
}

3. 결론

Dart는 간결하고 효율적인 문법을 제공하여 개발자가 쉽게 언어를 배우고 사용할 수 있습니다. 본 글에서는 Dart의 기본 문법과 함수 정의 및 호출에 대한 내용을 살펴보았습니다. 이러한 기능을 바탕으로 더욱 복잡하고 강력한 애플리케이션을 구축할 수 있을 것입니다.

Dart 언어를 더 깊이 배우고 싶다면, 공식 문서와 튜토리얼을 참고하는 것이 좋습니다. 계속해서 Dart의 많은 기능을 탐색하며 프로그래밍 실력을 향상시키시길 바랍니다.