본문 바로가기
App

[For Flutter] Dart 기본문법 #3 함수

by nothing-error 2023. 2. 13.

#Dart 가 설치되어 있지 않을 경우 https://dartpad.dev/ 에서 편하게 실행해 볼 수 있습니다.

 

함수

함수는 아래와 같이 작성됩니다. void는 retrun 없을 때 붙여줍니다. 아래 코드를 실행해 보면

 

위와 같이 에러가 발생합니다. hello 함수는 return 값이 있는데 void라고 선언했기 때문입니다. 때문에 아래와 같이 return 되는 타입을 String으로 지정해 줬습니다. 정상적으로 실행됩니다.

 

 

 

1. fat arrow syntax

위의 코드는 한 줄로 된 간단한 내용을 return 하기에 아래와 같이 =>를 사용해서 조금 더 간단하게 표현할 수 있습니다.

 

2. named parameter

파라미터에 여러 개의 인자를 받을 경우 아래와 같이 작성하실 수 있습니다.

 

hello 함수에 여러 개의 인자를 받을 경우 중괄호로 감싸게 되면  기존의 ('dahy', 12) -> (name: 'dahy', age:12)으로 바뀌며 각 인자가 의미하는 것이 무엇인지 명확하게 알 수 있기 때문에 아래와 같이 작성하는 것을 추천합니다. 다만 이전 글에서 배운 null safety 때문에 에러가 발생합니다 

 

아래와 같이 디폴트 값을 지정해 주면 해결됩니다.(파이썬에서 함수 작성하는 방법과 동일하네요)

 

3. required modifier

또 다른 방법은  함수 정의할 때 꼭 입력하라고 알려주는 것입니다. 이 것은 required를 붙여주면 됩니다. 아래 코드는 위의 코드에서 디폴트 값을 제거해 주고 앞에 required를 붙여주었습니다.

 

4. optional posiotional parameter

파라미터에 인자를 선택적으로 넣을 수 있도록 하려면 아래와 같이 대괄호와 ?를 사용해 주면 됩니다

 

5. ??

capitalizeName 함수는 문자열을 받아서 대문자로 바꿔주는 함수로 값이 null일 때에는 'ANON'을 반환하는 함수입니다.

아래 코드에서 ?? 의 경우 _______ ?? ________  여기서 ??의 왼쪽이 null이면 ??의 오른쪽을 반환하게 됩니다.

??= 의 경우 ?? 처럼 왼쪽의 값이 null이면 오른쪽의 값을 name 에 할당하게 됩니다.(name이 null 이면 'dahy'를 할당)

name ??= 'dahy';

 

 


2023.02.12 - [App] - [For Flutter] Dart 기본문법 #1 변수

2023.02.13 - [App] - [For Flutter] Dart 기본문법 #2 자료구조

2023.02.13 - [App] - [For Flutter] Dart 기본문법 #3 함수

2023.02.13 - [App] - [For Flutter] Dart 기본문법 #4 Class

 

 

 

 

이 글은 '노마드코더'의 Flutter 앱 개발을 위한 Dart 배우기 강의를 바탕으로 작성됐습니다.

아래 링크를 통해서 무료로 수강할 수 있습니다.(개인적으로 유튜브에 올라와 있는 다른 무료 강의보다 훨씬 이해하기 쉽게 알려줘서 개념 잡는데 큰 도움이 됐습니다)

https://nomadcoders.co/dart-for-beginners

댓글