Dart Functions

이서혁·2023년 11월 29일
0

Dart

목록 보기
5/6
post-thumbnail

Dart Language Tour

🔶 main 함수

Dart나 다른 프로그래밍 언어에서 main 함수는 프로그램의 진입점으로 사용된다. 프로그램이 실행될 때 운영 체제나 런타임 환경은 main 함수를 찾아서 거기서부터 코드를 실행한다.

// 이 Dart 코드는 main 함수를 포함하고 있습니다.
// 이 코드는 실행 가능한 Dart 프로그램입니다.

void main() {
  // main 함수 내부에 프로그램의 실행 로직을 작성합니다.
  print('Hello, Dart!');
}
// 이 Dart 코드는 main 함수를 포함하지 않습니다.
// 이 코드는 실행되지 않는 코드입니다.

void printMessage() {
  print('This code will not be executed.');
}

🔶 Variables

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);
}

🔶 Control Flow

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);
}

🔶 Functions

함수는 특수한 경우를 제외하고 인수(넣어주는 값)와 반환하는 값의 타입을 지정해주는 것이 권장됩니다. 몇몇 특수한 경우 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');
}

🔶 Comments

한 줄 주석, 문서화용 주석, 여러 줄 주석 표시를 모두 지원한다.

// 이것은 일반적인 한 줄 주석입니다.

/// 라이브러리, 클래스, 그리고 그들의 멤버를 문서화하는 데 사용되는 문서 주석입니다.

/* 이와 같은 
여러 줄 주석도 
지원됩니다. */

🔶 Imports

다른 라이브러리에서 정의된 API에 액세스하려면 import를 사용한다. Dart에서 제공하는 라이브러리 혹은 외부 패키지, 프로젝트 내 파일에 정의된 API, 함수 등을 불러올 수 있다.

// 핵심 라이브러리 가져오기
import 'dart:math';

// 외부 패키지의 라이브러리 가져오기
import 'package:test/test.dart';

// 파일 가져오기
import 'path/to/my_other_file.dart';
profile
hommehyuk

0개의 댓글