/// Dart 함수와 매개변수(optional, named)
void main() {
addNumbers(101010, 10101010);
bool isEven = isEvenNumber(addNumbers2(20, 400)) ;
print(isEven == true ? "짝수" : "홀수");
// 함수 사용과 매개변수
// 1. 매개변수(positional parameter)
// 2. optional parmeter - 있어도 되고, 없어도 된다.
// 2 - 1. optional parameter 기본값을 정해줄 수 잇고 required를 설정할 수 있다.
// 2 - 2. optional parameter required 주게 되면 named 파라미터라고 부른다.
// 2 - 3. optional parameter 기본값을 주게되면 역시나 named파라미터라고 부른다.
print(addNumber3(100, 200 ));
// 3. 람다 표현식 (화살표 함수)
// 코드를 한줄로 표현하고 싶다면 사용한다. return 키워드를 생략 가능하다.
// named parameter란 매개변수에 이름이 있고 ->> 순서가 크게 중요하지 않다.
addNumber4(n1: 100, n2: 100, n3: 100);
addNumber5(n1: 100, n2: 200);
print(addNumber6(n1: 100,n2: 2020020202));
}
// 함수를 선언할때 무엇을 할지 정의하고 만들자!
// 두개의 숫자를 받아 더하고 짝수인지 홀수인지 알려주는 함수를 만들어 보자 - 1
addNumbers(var n1, var n2){
int sum = n1 + n2;
if(sum % 2 == 0) {
print("짝수");
}else {
print("홀수");
}
}
// 두개의 매개 변수를 받아 덧셈하는 기능
addNumbers2(var n1, var n2){
return n1 + n2;
}
// 옵션널 파라미터를 사용하기 - 두개의 매개변수를 받아 덧셈하는 기능
addNumber3(var n1, var n2, { var n3 = 0} ){
return n1 + n2 + n3;
}
// named 파라미터
addNumber4({required var n1, required var n2, required var n3} ){
return n1 + n2 + n3;
}
addNumber5({ var n1 = 0, var n2 = 0, var n3 = 0} ){
// 방어적 코드
return n1 + n2 + n3;
}
addNumber6({ var n1 = 0, var n2 = 0, var n3 = 0} ) => n1 + n2 + n3;
// 정수값을 방아 짝수인지 홀수인지 true, false 를 반환하는 기능
isEvenNumber(var number){
return(number % 2)== 0 ? true : false;
}
optional parameter(매개변수 선택사항)
매개변수가 3개이지만 결과에서보면 2개이다. {} 중괄호를 사용하여 꼭 들어갈 필요가 없는 선택사항으로 만들수 있단걸 알 수 있다.
주의 해야할점 : 연산식에서 n3에는 null값이 들어올 가능성도 있다 그걸 방지 하기위해 n3에 0으로 값을 넣어주어야한다.
그런데 연산식에 n3이 없으면 n3에 0값(기본값)을 주지 않아도 된다.
named 파라미터(required )
optional parameter required 주게 되면 named파라미터 라고 부른다.
named parameter : 매개변수에 이름이 있고, 순서가 크게 중요하지 않다
매개변수에 required를 주지않고 모두 기본값 0을 주는것도 named파라미터라고 부른다.
람다식 활용한 연산
'개발일지 > Dart' 카테고리의 다른 글
1급 객체 (0) | 2022.11.09 |
---|---|
열거타입(Enum) (0) | 2022.11.09 |
제네릭, Isolate (0) | 2022.11.08 |
생성자, 추상 클래스 (0) | 2022.11.08 |
Dart (접근제어 지시자, getter / setter, 상속 & 다형성, Maxin(with), 생성자) (0) | 2022.11.07 |
댓글