본문 바로가기

FE개발 공부

4. Dart의 함수

dart함수에 대해 학습하고 기록했다.
벌써 진도를 반이나 수강했다.

 

  • 함수 정의

일반적으로 함수 정의는 다른 기존 언어들과 비슷하다.

 

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

String sayHello(String potato)=>"Hello $potato nice to meet you";
//  => 이걸 사용하면 바로 리턴한다는 의미이다.

void main(){
	print(sayHello('nico'));
}

 

  • Named Parameters

 

원래의 방식으로 parameter를 처리하려면 그걸 보고 함수를 다시 보고 이해해야 한다.

심지어 순서까지 맞춰야한다. 따라서 데이터가 많아지면 named arguments를 사용하는 것이 좋다.

 

보통 함수에서 더 많은 정보를 리턴하고 싶을 때 사용한다.

 

String sayHello({String name, int age, String country}){ //parameter에 중괄호 추가!!
	return "Hello $name, you are $age, and you come from $country";
}//이렇게까지만 하면 null safety에 의해 오류가 뜬다.

//따라서
String sayHello({//parameter에 중괄호 추가!!
	String name = "anon',  //default값을 설정해주는 방법
    int age = 99, 
    String country = 'wakanda'
    }){ //parameter에 중괄호 추가!!
	return "Hello $name, you are $age, and you come from $country";
}

//void main(){
	sayHello(); //default값이 있어서 
    이런 식으로 선언해도 문제가 없다.
}


String sayHello({//parameter에 중괄호 추가!!
	required String name,  //required를 설정해주는 방법
    required int age,      //
    required String country,
    }){ //parameter에 중괄호 추가!!
	return "Hello $name, you are $age, and you come from $country";
}


void main(){
	print(sayHello(
    	age: 12,
        country: 'cuba',
        name: 'nico',
    ));  //이런식으로 순서와 상관없이 named arguements를 사용할 수 있다!
}

 

default value를 설정하거나 required modifier를 이용할 수 있다!

default value는 null safety 때문에 사용하고

required modifier는 데이터를 꼭 받아야 할 때 사용한다. parameter가 꼭 있어야 된다는 걸 알려준다.

ex) 로그인 기능은required기능을 사용하면 좋다.

 

함수에 따라 개발자가 직접 결정한다.

 

  • Optional positional parameters

흔히 사용되지는 않는 문법이다.

 

String sayHello(String name, int age, 
	[String? contry = 'cuba']) =>
    'Hello $name, you are $age years old from
    $country';
    
void main(){
	var results = sayHello('nico', 12); //이런식으로 country가 없어도 실행된다!
    print(reaults);
}

 

 

  •  QQ

?? 이나 ?= 를 작성하여 사용한다.

값이 null일 수 있는 것에 쓰인다.

 

String capitalizeName(String? name)=>
	name?.toUpperCase() ?? 'ANON';
    
    //  좌항 ?? 우항 : 좌항이 null이면 우항을 return 한다.
                      좌항이 null이 아니면 그대로 좌항을 return한다.
    
void main(){
	capitalizeName('nico');
}	


--------------

void name(){
	String? name;
    name ??= 'nico'; //name이 null이 아니면 우항을 return
}

 

 

  • typedef

자료형을 직접 정의하여 사용할 수 있는 기능이다.

 

integer list나 map, set에 주로 사용한다.

 

typedef intList = List<int>;

void main(){
	intList intergetList = [1,2,3]; //이런 느낌
}

 



다음 시간에는 메인 파트인 class를 학습하고 기록해야겠다.

flutter는 다 class여서 집중이 필요한 파트이다!

'FE개발 공부' 카테고리의 다른 글

6. Flutter 소개  (0) 2025.10.02
5. Dart의 클래스  (0) 2025.09.27
3. Dart의 데이터  (0) 2025.09.25
2. Dart의 다양한 변수들  (0) 2025.09.24
1. Dart 소개  (0) 2025.09.24