본문 바로가기
다트(Dart)

다트(Dart) 함수

by 인생즐겜러 2023. 3. 14.
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

댓글