Dart나 다른 프로그래밍 언어에서 main 함수는 프로그램의 진입점으로 사용된다. 프로그램이 실행될 때 운영 체제나 런타임 환경은 main 함수를 찾아서 거기서부터 코드를 실행한다.
// 이 Dart 코드는 main 함수를 포함하고 있습니다.
// 이 코드는 실행 가능한 Dart 프로그램입니다.
void main() {
// main 함수 내부에 프로그램의 실행 로직을 작성합니다.
print('Hello, Dart!');
}
// 이 Dart 코드는 main 함수를 포함하지 않습니다.
// 이 코드는 실행되지 않는 코드입니다.
void printMessage() {
print('This code will not be executed.');
}
Dart는 Type-Safe를 유지하면서도, 대부분의 변수에 타입을 지정하지 않고 var를 사용하여 선언할 수 있다. 변수의 타입은 초기 값에 따라 결정된다.
// 이 Dart 코드는 변수 타입과 변수 사용 예시를 포함하고 있습니다.
void main() {
// 정수형 변수
int number = 42;
// 실수형 변수
double pi = 3.14;
// 불리언 변수
bool isDartFun = true;
// 문자열 변수
String greeting = 'Hello, Dart!';
// 리스트 변수
List<int> numbers = [1, 2, 3, 4, 5];
// 맵 변수
Map<String, int> ages = {
'Alice': 25,
'Bob': 30,
'Charlie': 35,
};
// 변수 출력
print(number);
print(pi);
print(isDartFun);
print(greeting);
print(numbers);
print(ages);
// 변수 값 변경
number = 100;
pi = 3.141592;
isDartFun = false;
greeting = 'Goodbye, Dart!';
numbers.add(6);
ages['Dave'] = 40;
// 변경된 변수 출력
print(number);
print(pi);
print(isDartFun);
print(greeting);
print(numbers);
print(ages);
}
Dart는 일반적인 제어문을 지원합니다. 제어문에는 if/else, switch/case, while, do/while, for 등이 포함됩니다.
// 이 Dart 코드는 제어문 예시를 포함하고 있습니다.
void main() {
// if-else 문: 조건에 따라 코드 실행 여부 결정
int number = 42;
if (number > 50) {
print('number is greater than 50');
} else {
print('number is less than or equal to 50');
}
// switch-case 문: 다중 분기 처리
String fruit = 'apple';
switch (fruit) {
case 'apple':
print('This is an apple');
break;
case 'banana':
print('This is a banana');
break;
default:
print('This is not a fruit');
}
// for-in 문: 리스트나 맵의 모든 항목에 대해 반복
List<int> numbers = [1, 2, 3, 4, 5];
for (int number in numbers) {
print(number);
}
// while 문: 조건이 참인 동안 코드 반복 실행
int count = 0;
while (count < 5) {
print(count);
count++;
}
// do-while 문: 코드를 최소한 한번 실행하고, 조건이 참인 동안 반복 실행
int i = 0;
do {
print(i);
i++;
} while (i < 3);
}
함수는 특수한 경우를 제외하고 인수(넣어주는 값)와 반환하는 값의 타입을 지정해주는 것이 권장됩니다. 몇몇 특수한 경우 void와 같이 타입과 반환 값을 지정하지 않을 수도 있습니다. 간단한 함수는 =>(화살표) 단축 구문으로 만들 수도 있으며, 함수가 다른 함수의 인수로 사용될 수도 있습니다.
void main() {
// 타입 지정된 함수
int add(int a, int b) {
return a + b;
}
// 화살표 함수
int multiply(int a, int b) => a * b;
// forEach()를 사용한 함수 인수와 익명 함수
var numbers = [1, 2, 3, 4, 5];
numbers.where((number) => number.isEven).forEach(print);
}
// 이 Dart 코드는 함수 선언과 함수 사용 예시를 포함하고 있습니다.
void main() {
// 함수 호출
printMessage('Hello, Dart!');
// 함수 호출과 반환값 사용
int result = addNumbers(3, 5);
print('3 + 5 = $result');
// 선택적 매개변수 사용
showInfo('Alice');
showInfo('Bob', age: 30);
// 위치 기반 매개변수 사용
printInfo('Charlie', 35);
}
// 함수 선언: 반환 값이 없는 함수
void printMessage(String message) {
print(message);
}
// 함수 선언: 인자 두 개를 받아 더한 결과를 반환하는 함수
int addNumbers(int a, int b) {
return a + b;
}
// 함수 선언: 선택적 매개변수를 사용하는 함수
void showInfo(String name, {int? age}) {
print('Name: $name');
if (age != null) {
print('Age: $age');
}
}
// 함수 선언: 위치 기반 매개변수를 사용하는 함수
void printInfo(String name, int age) {
print('Name: $name');
print('Age: $age');
}
한 줄 주석, 문서화용 주석, 여러 줄 주석 표시를 모두 지원한다.
// 이것은 일반적인 한 줄 주석입니다.
/// 라이브러리, 클래스, 그리고 그들의 멤버를 문서화하는 데 사용되는 문서 주석입니다.
/* 이와 같은
여러 줄 주석도
지원됩니다. */
다른 라이브러리에서 정의된 API에 액세스하려면 import를 사용한다. Dart에서 제공하는 라이브러리 혹은 외부 패키지, 프로젝트 내 파일에 정의된 API, 함수 등을 불러올 수 있다.
// 핵심 라이브러리 가져오기
import 'dart:math';
// 외부 패키지의 라이브러리 가져오기
import 'package:test/test.dart';
// 파일 가져오기
import 'path/to/my_other_file.dart';