티스토리 뷰
반응형

Dart의 기본적인 함수 선언 방법

기본적인 함수 선언 방식은 다음과 같다.

String toUpperCase(String s){
	return s.toUpperCase();
}

 

이처럼 함수의 형태는

반환형 함수이름(매개변수형 매개변수이름) {
          (함수 내용)
          return 반환값;
}

과 같은 형태로 이루어져 있다.

 

함수의 Named Parameter

클래스에서 Named Parameter를 사용하는 것처럼, 함수에서도 같은 방식으로 사용이 가능하다.

다음은 Named Parameter를 사용하는 함수의 예시이다.

// --- Named parameter ---
// Named parameter를 사용하면 함수의 매개변수를 순서에 따라 작성할 필요가 없다.
// 함수를 작성할 때, null-safety를 위해 default value 또는 required를 사용해주어야 한다.
String sayHello({
  required String name,
  required int age,
  String country = "Korea",
}) {
  return "Hello $name, you are $age, and you come from $country.";
}

이처럼, sayHello라는 함수는 Named Parameter를 사용하여 매개변수들을 전달받는다.

이 경우에  null-safety를 위해 default value 또는 required를 사용해야한다.

 

 print(sayHello(
    name: "hwi",
    age: 24,
  ));

sayHello 함수를 사용하고자 한다면, 위처럼 사용할 수 있다.

 

Null을 다루는 방법

void main() {
  // Named parameter example
  print(sayHello(
    name: "hwi",
    age: 24,
  ));

  // QQ operator example
  print(capitalizeName("daehwi"));
  String? name;
  // name이 null 인 경우 "jason"을 할당한다.
  name ??= "jason";
}

// --- Named parameter ---
// Named parameter를 사용하면 함수의 매개변수를 순서에 따라 작성할 필요가 없다.
// 함수를 작성할 때, null-safety를 위해 default value 또는 required를 사용해주어야 한다.
String sayHello({
  required String name,
  required int age,
  String country = "Korea",
}) {
  return "Hello $name, you are $age, and you come from $country.";
}

// --- Way to Handle null (QQ operator) ---
String capitalizeName(String? name) {
  // Option 1
  // if (name != null) {
  //   return name.toUpperCase();
  // }
  // return 'ANON';

  // Option 2
  // return name != null ? name.toUpperCase() : "ANON";

  // Option 3: QQ operator
  // 좌항이 null인 경우, 우항을 반환한다.
  return name?.toUpperCase() ?? "ANON";
}

// --- typedef ---
// 원하는 타입에 alias(별칭)을 붙혀줄 수 있다.
typedef ListOfInts = List<int>;
ListOfInts reverseListOfNumbers(List<int> list) {
  var reversed = list.reversed;
  return reversed.toList();
}

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함