목차
반응형
1. 함수 사용법
기본적인 함수 선언
// 반환값이 없음, input 없음
void greet() {
print("Hello, Dart!");
}
void main() {
greet(); // 함수 호출
}
반환값 정의: return 에 반환값 정의, 함수 이름 앞에 반환값의 자료형 정의
input값 정의 : 자료형 변수명 형식
int add(int a, int b) {
return a + b;
}
void main() {
int sum = add(3, 5);
print("Sum: $sum"); // 출력: Sum: 8
}
선택적 매개변수 : []
- [] 안에 있는 매개변수는 필수가 아님
- 기본값이 없으면 null이 들어갈 수도 있음
void greet([String name = "Guest"]) {
print("Hello, $name!");
}
void main() {
greet(); // 출력: Hello, Guest!
greet("Alice"); // 출력: Hello, Alice!
}
사용한 명명된 선택적 매개변수 : {}
- 함수 선언시, 변수명을 값과 함께 넣어줌
void introduce({String name = "Unknown", int age = 0}) {
print("My name is $name and I am $age years old.");
}
void main() {
introduce(); // 출력: My name is Unknown and I am 0 years old.
introduce(name: "Alice", age: 25); // 출력: My name is Alice and I am 25 years old.
}
필수 매개변수 : required 자료형 변수명
void register({required String email, required String password}) {
print("Registered with $email");
}
void main() {
register(email: "alice@example.com", password: "securePass123");
}
2. Arrow 함수
함수의 내용을 => 를 이용해 만들어줌
int multiply(int a, int b) => a * b;
void main() {
print(multiply(3, 4)); // 출력: 12
}
3. 고차 함수 (Higher-Order Functions)
함수를 매개변수로 전달
아래 코드는 int Function(int, int) 타입의 함수를 매개변수로 받을 수 있음
void applyFunction(int a, int b, int Function(int, int) operation) {
print("Result: ${operation(a, b)}");
}
void main() {
applyFunction(5, 3, (x, y) => x + y); // 출력: Result: 8
applyFunction(5, 3, (x, y) => x * y); // 출력: Result: 15
}
함수를 반환하는 함수.
return 에 함수를 넣어주면 됨
Function makeAdder(int x) {
return (int y) => x + y;
}
void main() {
var add5 = makeAdder(5);
print(add5(3)); // 출력: 8
}
4. 익명 함수 (Anonymous Function)
함수 이름 없이 선언할 수 있음
이름 없는 함수를 변수에 저장할 수 있음
void main() {
var multiply = (int a, int b) {
return a * b;
};
print(multiply(4, 5)); // 출력: 20
}
반응형
'flutter' 카테고리의 다른 글
[flutter] dart 언어 - 비동기 프로그래밍 (5) (0) | 2025.02.23 |
---|---|
[flutter] dart 언어 - 조건문 & 반복문 (3) (0) | 2025.02.22 |
[flutter] dart 언어 - print, 주석, 변수, 자료형 (2) (0) | 2025.02.22 |
[flutter] 환경 세팅 (1) (0) | 2025.02.22 |