기존 

void main(){
  print(sayHello('nico',11,"korea"));
}

String sayHello(String name, int age, String contry){
  return "name = $name, age = $age, contry = $contry";
}

name argument

function 호출시 파라미터에 순서값 대신 name으로 구분

함수의 위치를 기억하지 않고 함수의 정의를 보고 실행함 -> 순서 상관 X

* 이 경우 예외를 지정해주지 않으면 에러남

void main(){
  print(sayHello(
    name : "suna",
    age : 11,
    contry : "korea"));
}

String sayHello({String name, int age, String contry}){
  
  return "name = $name, age = $age, contry = $contry";
}

Error compiling to JavaScript: lib/main.dart:8:25: Error: The parameter 'name' can't have a value of 'null' because of its type 'String', but the implicit default value is 'null'. String sayHello({String name, int age, String contry}){ ^^^^ lib/main.dart:8:35: Error: The parameter 'age' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'. String sayHello({String name, int age, String contry}){ ^^^ lib/main.dart:8:47: Error: The parameter 'contry' can't have a value of 'null' because of its type 'String', but the implicit default value is 'null'. String sayHello({String name, int age, String contry}){ ^^^^^^ Error: Compilation failed.

 

*예외지정 1*

named argument에 default value 지정

void main(){
  print(sayHello(
    name : "suna",
    age : 11,
    contry : "korea"));
}

String sayHello({String name ='name', int age =0, String contry='contry'}){
  
  return "name = $name, age = $age, contry = $contry";
}

*예외지정 2*

required modifier를 이용해서 필수값으로 지정

void main(){
  print(sayHello(
    name : "suna",
    age : 11,
    contry : "korea"));
}

String sayHello({required name , required age, required contry}){
  
  return "name = $name, age = $age, contry = $contry";
}

+ Recent posts