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의 많은 기능을 탐색하며 프로그래밍 실력을 향상시키시길 바랍니다.