Parameter? Argument?
void main() {
// argument - 전달, 인자값. (10, 20, 30);
addNumber(10, 20, 30);
}
// !함수설명 적는 습관 증요
// 세개의 숫자(x, y, z)를 더하고 짝수인지 홀수인지 알려주는 함수
// parameter - 매개변수. (x, y, z)
// positional parameter - 순서가 중요한 파라미터
addNumber(int x, int y, int z) {
int sum = x + y + z;
print('x : $x');
print('y : $x');
print('z : $x');
if(sum % 2 == 0) {
print('짝수입니다.');
} else {
print('홀수입니다.');
}
}
optional 뜻은 '선택적'
// optional parameter = 있어도 되고 없어도 되는 파라미터
// [] 표시
// 기본값 지정 가능
addNumber(int x, [int? y, int? z]) { }
addNumber(int x, [int y = 10, int z = 20]) { }
void main() {
addNumber(x: 10, y: 30, z: 40);
addNumber(y: 10, x: 30, z: 40, n: 10);
}
// named parameter - 이름이 있는 파라미터 (순서가 중요하지 않다.)
// {} 표시
addNumber({
required int x,
required int y,
required int z,
// optional parameter 사용방법
int n = 10,
}) {
int sum = x + y + z + n;
print(sum);
}
void
는 return value(리턴 값)가 없는 함수인 경우 사용한다.
// void - 공허
void main() {
hello();
}
void hello(){
print('hello world');
}
return value가 있는 함수는 return type을 지정한다.
void main() {
String test = hello();
print(test);
}
String hello(){
String txt = 'hello world';
return txt;
}
함수를 간단하게 표현할 수 있다.
void main() {
int result = addNumbers(10, 10, 10);
print(result);
int resultArrow = addNumbers(10, 10, 10);
print(resultArrow);
}
int addNumbers(int x, int y, int z){
return x + y + z;
}
int addNumbersArrow(int x, int y, int z) => x + y + z;
함수를 편리하게 사용할 수 있는 기능 중 하나.
typedef 에 선언된 시그니처에 부합하는 모든 함수들을 사용할 수 있다.
아래는 이해를 돕기위한 설명.(이렇게 사용하지는 않는다.)
void main() {
// 3. Operation type 선언 = typedef 선언
Operation operation = add;
// add 함수가 실행된다.
int result = operation(10, 20, 30);
print(result);
// =30
// 4. Operation 재선언
operation = subtract;
// subtract 함수가 실행된다.
int result2 = operation(10, 20, 30);
print(result2);
// =40
}
// 1. typedef 선언
// signature - 리턴타입과 파라미터의 형태
typedef Operation = int Function(int x, int y, int z);
// 2. signature 에 완전 부합하는 함수 두개 선언(add, subtract)
// 더하기
int add(int x, int y, int z) => x + y + z;
// 빼기
int subtract(int x, int y, int z) => x - y - z;
아래는 실제로 사용하는 방법 중 하나.
void main() {
// 4. typedef 함수 사용하기
int result = calculate(10, 20, 30, add);
print(result);
// = 60
int result2 = calculate(30, 10, 10, subtract);
print(result2);
// = 10
}
// 1. typedef 선언
// signature - 리턴타입과 파라미터의 형태
typedef Operation = int Function(int x, int y, int z);
// 2. signature 에 완전 부합하는 함수 두개 선언(add, subtract)
// 더하기
int add(int x, int y, int z) => x + y + z;
// 빼기
int subtract(int x, int y, int z) => x - y - z;
// 3. 계산
int calculate(int x, int y, int z, Operation operation) {
return operation(x, y, z);
}