본문 바로가기
PM 기술스터디

(Flutter Study) DART 언어 - Functions

by Rocket Launch 2023. 6. 28.
반응형

컴퓨터 비전공자 Product Manager의 프로그래밍 공부

노마드 코더(Nomad Coders) 강의 필기 노트 입니다.

강의 정보: Dart 시작하기 (https://nomadcoders.co/dart-for-beginners)

Dart Functions

Defining a Function

void는 이 함수가 아무것도 return하지 않는다는 의미이다.

DART - Defining a Function

 fat arriw syntax ( => )는 곧바로 return 하는 거랑 같은 의미이다.

DART - Defining a Function, return & =>

Named Parameters, Named Argument

DART - Positional Parameter, named argument 사용 전

위 처럼 순서에 맞게 Parameter의 값을 넣어주는 것을 Positional Parameter라고 한다. 순서가 중요하며 모든 값은 필수값이 된다. 만약 하나라도 비어있으면 이 코드를 컴파일 하지 않는다. 이를 사용하기 위해서는 순서를 꼭 다 알아야 한다. 그리고 나중에 이 코드를 봤을때 무엇을 의미하는지 알아보기 힘들다. (파악하기 위해 함수 정의를 확인 해야만 한다. 클린 코드 책 에서는 이런걸 최소화해야 한다고 말한다.)

하지만 named argument를 사용하면 순서는 상관없어진다. parameter의 명칭을 적고 값을 적어주는 것으로 순서에 상관없이 함수의 parameter를 채워넣을 수 있다. named argument를 사용하기 위해서는 함수를 정의할때  { 중괄호 } 를 넣어주어야 한다. 

named argument에서는 parameter가 null일 가능성을 고려한다(DART는 Null safe 이기 때문). 이때 해줄 수 있는 방법은 첫째, Defualt value를 정의해주는 것이다. 

DART - named argument 사용, Null일 경우 Defualt값 정의

위 예시에서 Parameter가 null일 경우 name은 anonymouse로 정의했고, age 는 0, country는 wakanda 로 정의했다. 변수 유형에 맞게 dafault 값을 정의해야 한다.

두번째 방법은 required 를 적용하는 것이다.

DART - named argument 사용시 Required(필수값) modifier 사용

Parameter 값이 없으면 필수값임을 알려주고 Dart는 이 코드를 컴파일 하지 않는다. 그리고 Parameter 값이 있을때만 함수의 결과를 보여준다.

Optional Positional Parameter

DART - Optional Positional Parameter

Positional Parameter의 경우 모두 필수값이다. Optional Positional Parameter 의 경우 디폴트 값을 정의하여 Null Parameter를 대응할 수 있다. 적용 방법은, 함수에 해당 Parameter를 [ 대괄호 ] 로 감싸고, 데이터 타입 뒤에 물음표(?) 를 붙여주고, Default 값을 정의해준다. 그러면 해당 Parameter 값이 Nullable이 되고 Null 일 경우 Dafault로 대신한다. 이는 다시말해 '해당 Parameter는 필수 값이 아니고 Null일 경우 Default값으로 대체하라' 고 정의해준 것이다.

(강사 Nico는 Optional Positional Parameter는 거의 사용 안하고, Named Argument를 주로 사용한다.)

QQ operator

내 이름을 대문자로 전환하는 방법

DART - null을 입력할 수 있도록 조건문과 (?) 와 콜론(:)을 이용한 방법

사용자가 Null 입력할 수 있도록 한것. null일 경우 default 로 ANON으로 Return 하도록 한다. 이걸 조금 더 짧게하기 위해 앞서 배운 fat arrow를 사용할 수도 있음. 이때 ternary operator (?) 와 콜론(:)를 적어서 조건문을 만들 수 있다. (null이 아니면 대문자로 하고, null이면 'ANON'을 return 해줘)

?? 이 의미하는 것: left ?? right 처럼 입력 하면, left가 null이면 right를 준다는 뜻이다. 위 예시에서 조건문을 모두 지우고 콜론(:) 자리에 Question Question operator (??)를 입력해주면 된다. (추가로 name이 null일 수 있다는 표시로 name에 ?를 붙여준다.)

DART - ?? = Question Question operator = QQ operator 적용

QQequal operator (??=)

변수가 null이면 해당 값을 할당해줘

DART - QQequal operator (??=)

Typedef

typedef는 자료형에 자신만의 alias를 붙일 수 있게 해준다. (치환 하는 법)

DART - Typedef 'List' 예시

위 이미지는 List<int> 를 ListOfInts로 치환한 예시이다.

DART - Typedef 'Map' 예시

위 이미지는 Map<string, string>를 UserInfo로 치환한 예시이다.

반응형

댓글