-
Dart#3. 함수프론트/Dart 2024. 11. 3. 20:52
Function
일반적인 함수
int add(int a, int b) { return a + b; }
매개변수를 순서대로 넣는 방식으로 왼쪽 위에서부터 반환 형태, 매개 변수, 반환할 값을 정의하는 구조를 가진다.
선택적 이름 있는 인수 함수 (Optional Named Arguments)
// sayHello 함수 정의 String sayHello( {String name = 'anon', int age = 99, String country = 'wakanda'}) { return "Hello $name, you are $age years old, and you come from $country."; } void main() { // 예제 1: 모든 매개변수를 전달하지 않고 기본값만 사용 // name은 'anon', age는 99, country는 'wakanda'로 설정된 기본값이 사용됩니다. print(sayHello()); // 예제 2: name만 전달하고 나머지는 기본값 사용 // age와 country는 기본값 99와 'wakanda'로 설정됩니다. print(sayHello(name: "Alice")); // 예제 3: name과 age만 전달하고 country는 기본값 사용 // country는 기본값 'wakanda'로 설정됩니다. print(sayHello(name: "Bob", age: 30)); // 예제 4: 모든 매개변수를 전달하여 기본값을 덮어씌움 print(sayHello(name: "Charlie", age: 40, country: "USA")); }
- 기본값 지정: {String name = 'anon', int age = 99, String country = 'wakanda'}처럼 매개변수의 기본값을 = 연산자로 설정할 수 있다.
- 생략 가능: 기본값이 있기 때문에 함수 호출 시 매개변수를 생략해도 됩니다. 생략된 매개변수는 지정된 기본값을 사용한다.
// sayHello 함수 정의 String sayHello( {required String name, required int age, required String country}) { return "Hello $name, you are $age years old, and you come from $country."; } void main() { // 예제 1: 모든 매개변수를 제공하여 호출 print(sayHello(name: "Alice", age: 25, country: "USA")); // 예제 2: 다른 값으로 호출 print(sayHello(name: "Jeongwon", age: 30, country: "South Korea")); // 예제 3: 사용자가 제공한 정보를 기반으로 출력 String userName = "Liam"; int userAge = 35; String userCountry = "Australia"; // 매개변수를 제공하지 않고 sayHello 함수를 호출하는 경우 // 컴파일 오류가 발생합니다. 'required'로 지정된 매개변수를 전달하지 않으면 // Dart는 이 함수 호출을 유효하지 않은 것으로 간주합니다. // print(sayHello()); // 오류 예제: 매개변수를 일부만 제공한 경우에도 오류가 발생합니다. // 'required'로 지정된 매개변수는 모두 제공되어야 합니다. // print(sayHello(name: "Bob")); // age와 country가 빠져서 오류 발생 print(sayHello(name: userName, age: userAge, country: userCountry)); } // 출력 결과 Hello Alice, you are 25 years old, and you come from USA. Hello Jeongwon, you are 30 years old, and you come from South Korea. Hello Liam, you are 35 years old, and you come from Australia.
- 필수 매개변수 지정: {required String name, required int age, required String country}처럼 매개변수 앞에 required 키워드를 붙이면 필수 매개변수로 지정된다.
- 기본값이 없음: 필수 매개변수는 기본값을 가질 수 없으므로, 함수 호출 시 반드시 인수를 전달해야 한다.
'프론트 > Dart' 카테고리의 다른 글
Dart#2. 자료형 (0) 2024.10.29 Dart #1. Hello World (0) 2024.10.27 Dart #0. 시작 (1) 2024.10.25