728x90
반응형
순서
- 선언
- Named Parameters
- Optional Positional Parameters
선언
마찬가지로 기본적인 모양은 Java와 비슷하다.
타입 + 함수명 + 파라미터 + 내용
으로 구성되어 있다.
한 줄 정도의 내용이라면 화살표 함수로 처리가 가능하다.
화살표는 쉽게 말해 매개변수를 넣으면 화살표 뒤를 리턴해준다는 의미다.
아래의 예를 보면 이해가 빠르다.
void main() {
Hello('jin');
print(Hello2('jin'));
}
// 함수 선언
void Hello(String name){
print("Hello, $name");
}
// fat arrow syntax
String Hello2(String name) => "Hello, $name";
// 결과
Hello, jin
Hello, jin
Named Parameters
자바에서는 파라미터의 순서대로 매개변수를 입력을 해야 한다. (Positional Parameters)
하지만 다트에서는 순서를 기억할 필요 없이 파라미터 이름를 key처럼 사용해서
매개변수를 넣을 수 있는 방법이 바로 이것이다.
사용법은 간단하다.
함수 선언 시 파라미터를 중괄호로 감싸면 끝.
null 값 방지를 위해 할 수 있는 방법은 2가지가 있다.
1. 초기값을 지정
파라미터 변수에 = 으로 값을 넣으면 된다.
그럼 매개변수에 해당 값이 없더라도 디폴트 값으로 값이 나온다.
2. required modifier 사용
아래처럼 required를 사용하면 해당 파라미터는 매개변수 값이 들어오지 않으면 컴파일 에러가 나게 설정된다.
String Hello({required String name, required int age, required String country}){
return "Hello, $name. You are $age. And you come from $country.";
}
종합적 예를 보자.
void main() {
print(Hello(
age : 20,
country : 'Korea',
name : 'jin',
));
print(Hello(
age : 20,
));
}
// Named Parameters를 사용한 함수 선언
String Hello({String name = 'default', int age = 22, String country = 'default country'}){
return "Hello, $name. You are $age. And you come from $country.";
}
// 결과
Hello, jin. You are 20. And you come from Korea.
Hello, default. You are 20. And you come from default country.
Optional Positional Parameters
Positional Parameters 에서 named는 안 걸고 싶고 그렇다고 required는 쓰고 싶지 않을 때 사용한다.
이런 게 있다는 것만 알면 된다.
옵션을 거는 예는 아래와 같다.
void main() {
print(Hello(
age : 20,
name : 'jin',
));
}
// Optional Position Parameters를 사용한 함수 선언
String Hello(String name = 'default', int age = 22, [String? country = 'default country']){
return "Hello, $name. You are $age. And you come from $country.";
}
// 결과
Hello, jin. You are 20. And you come from default country.
728x90
반응형
'다트(Dart)' 카테고리의 다른 글
다트(Dart) typedef (0) | 2023.03.14 |
---|---|
다트(Dart) 연산자 (0) | 2023.03.14 |
다트(Dart) 자료형 - Maps과 Set (0) | 2023.03.12 |
다트(Dart) 자료형 - List / String Interpolation / Collection (0) | 2023.03.10 |
다트(Dart) 자료형 - 기본형 (0) | 2023.03.10 |
댓글