DART

[노마드코더 : Dart 시작하기] #3.0 Defining a Function

유호야 2022. 11. 18. 07:26
반응형

name argument가 있으면 좋겠다.

순서에 관계없이 입력 받기 위해서

함수가 name argument를 받기 위해서는 

사용자가 String에 아무 값도 입력하지 않으면 어떻게 할까?
"NULL SAFETY"를 지원하는 Dart,
기본값을 미리 지정해주면 된다.

// String sayHello(String imie) {
//   return "Hello $imie nice to meet you";
// }

String sayHello(
    {String name = 'anonymous', int age = 99, String country = 'USA'}) {
  return "My name is $name, I'm $age years old, and I'm from $country, Nice to meet you";
}

void main() {
  print(sayHello(name: 'Sihem', age: 25));
}

//main function은 return 값이 없기 때문에 그대로 void로 둬야 한다.

 

default 값을 제거 했을 경우에 

required 통해서 null 값이 들어가는 것을 방지할 수 있다. 

String sayHello(
    {required String name, required int age, required String country}) {
  return "My name is $name, I'm $age years old, and I'm from $country, Nice to meet you";
}

 

파라미터 앞에 required들을 입력했으나 실제 argument들을 입력하지 않은 경우 아래와 같은 Error가 뜬다.  

 

// String sayHello(String imie) {
//   return "Hello $imie nice to meet you";
// }

String sayHello(
    {required String name, required int age, required String country}) {
  return "My name is $name, I'm $age years old, and I'm from $country, Nice to meet you";
}

void main() {
  print(sayHello(
    country: 'Saudi Arabia',
    name: 'Sihem',
    age: 25,
  ));
}

//main function은 return 값이 없기 때문에 그대로 void로 둬야 한다.

이러한 형태일 경우는 순서가 바뀌어도 상관이 없다. 

반응형