728x90
📌익명 함수( Anoymous Function )
익명 함수(Anoymous Function)은 이름이 없는 함수를 뜻합니다.선언을 하더라도 다시 호출할 방법이 없고 마지막에 세미콜론을 찍는 특징이 있습니다.
// 매개변수가 하나인 경우
(매개변수){
수행 구문
};
// 매개변수가 다수인 경우
(매개변수1, 매개변수2 ...){
수행 구문
};
예시 코드
void main(){
// 1단계
(int number){
return 100 + number;
};
// 변수에 할당하지 않고 바로 익명 함수를 호출 하는 것은 dart에서는 불가능
// 2단계: 함수를 변수에 담을 수 있다(dart는 일급 객체를 지원)
int Function(int) square = (int number){
return number * number;
};
print("square : ${square.runtimeType}");
// 2-1 단게 : 명시적 타입(Function)과 리턴 타입이 생략, 파라미터 타입도 생략 가능
Function sub = (a,b){
return a-b;
};
// 3단계 : var 키워드에 사용(타입 추론 : 자동으로 타입을 할당)
var cube = (int number){
return number * number * number;
};
// 4단계 : 익명 함수 파라미터 생략 가능
var add = (number){
return number+10;
};
// 5단계
var multiply = (a,b){
return a* b;
};
// 메서드의 호출은 괄호이다
print("2의 제곱은 ${square(2)}");
print("두 수의 빼기 연산 ${sub(15,10)}");
print("3의 3제곱은 ${cube(3)}");
print("곱셈의 결과값은 ${multiply(10,20)}");
}
square : (int) => int
2의 제곱은 4
두 수의 빼기 연산 5
3의 3제곱은 27
곱셈의 결과값은 200
두 수의 덧셈은 30
📌화살표 함수( Arrow Function )
Dart에서의 화살표 함수(arrow function)는 함수를 간결하게 정의하고 사용할 수 있는 특별한 문법입니다. 다른 프로그래밍 언어에서는 람다 함수 또는 람다 표현식이라 부릅니다. 화살표 함수는 Dart 2.7 버전부터 지원되기 시작했습니다. 기존 함수 정의와 비교하면, 화살표 함수는 간단한 함수를 더 간결하게 표현할 수 있는 표현식입니다. 여기서 중요한 부분은 “화살표 함수는 == 표현식이다”라는 말에 집중해 봅시다.
returnType functionName(parameters...) => expression;
// 일반적인 함수 정의
int add(int a, int b) {
return a + b;
}
// 화살표 함수로 변환
int addArrow(int a, int b) => a + b;
예시 코드
void main() {
int num1 = 500;
int num2 = 10;
print("${div(num1,num2)}");
}
/// 1. 기존 함수 정의
int add1(int n1, int n2) {
return n1 + n2;
}
int sub1(int n1, int n2) {
return n1 - n2;
}
int mul1(int n1, int n2) {
return n1 * n2;
}
double div1(int n1, int n2) {
return n1 / n2;
}
/// 2. 화살표 함수 정의
int add(int n1, int n2)=> n1+n2;
int sub(int n1, int n2)=> n1-n2;
int mul(int n1, int n2)=> n1*n2;
double div(int n1, int n2)=> n1/n2;
화살표 함수의 한계
화살표 함수는 단일 표현식인 경우에만 사용할 수 있습니다.
복잡한 함수를 정의할 때는 기존의 Function 키워드를 사용하는 것이 적절할 수 있습니다. 화살표 함수는 주로 간단한 연산을 수행하는 경우나 콜백 함수로 사용될 때 유용하며, 코드의 가독성과 간결성을 높일 때 사용할 수 있도록 합시다.
사용 불가능 예시 코드
int subtract(int a, int b) {
if (a > b) {
return a - b;
} else {
return b - a;
}
}
<참고 자료>
https://dart-ko.dev/language/functions
함수
Dart 언어의 함수에 대한 모든 것
dart-ko.dev
728x90
'Flutter' 카테고리의 다른 글
[Flutter] Flutter DevTools 실행하는 법 (0) | 2024.02.02 |
---|---|
[Flutter] Debug Banner없애는 법 (0) | 2024.02.02 |
[dart] dart Null Safety 이란? (0) | 2024.01.31 |
[Flutter] 설치 및 환경 설정 + Device 띄우는 법 (1) | 2024.01.30 |