컴퓨터 비전공자 Product Manager의 프로그래밍 공부
노마드 코더(Nomad Coders) 강의 필기 노트 입니다.
강의 정보: Dart 시작하기 (https://nomadcoders.co/dart-for-beginners)
Dart Functions
Defining a Function
void는 이 함수가 아무것도 return하지 않는다는 의미이다.
fat arriw syntax ( => )는 곧바로 return 하는 거랑 같은 의미이다.
Named Parameters, Named Argument
위 처럼 순서에 맞게 Parameter의 값을 넣어주는 것을 Positional Parameter라고 한다. 순서가 중요하며 모든 값은 필수값이 된다. 만약 하나라도 비어있으면 이 코드를 컴파일 하지 않는다. 이를 사용하기 위해서는 순서를 꼭 다 알아야 한다. 그리고 나중에 이 코드를 봤을때 무엇을 의미하는지 알아보기 힘들다. (파악하기 위해 함수 정의를 확인 해야만 한다. 클린 코드 책 에서는 이런걸 최소화해야 한다고 말한다.)
하지만 named argument를 사용하면 순서는 상관없어진다. parameter의 명칭을 적고 값을 적어주는 것으로 순서에 상관없이 함수의 parameter를 채워넣을 수 있다. named argument를 사용하기 위해서는 함수를 정의할때 { 중괄호 } 를 넣어주어야 한다.
named argument에서는 parameter가 null일 가능성을 고려한다(DART는 Null safe 이기 때문). 이때 해줄 수 있는 방법은 첫째, Defualt value를 정의해주는 것이다.
위 예시에서 Parameter가 null일 경우 name은 anonymouse로 정의했고, age 는 0, country는 wakanda 로 정의했다. 변수 유형에 맞게 dafault 값을 정의해야 한다.
두번째 방법은 required 를 적용하는 것이다.
Parameter 값이 없으면 필수값임을 알려주고 Dart는 이 코드를 컴파일 하지 않는다. 그리고 Parameter 값이 있을때만 함수의 결과를 보여준다.
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
내 이름을 대문자로 전환하는 방법
사용자가 Null 입력할 수 있도록 한것. null일 경우 default 로 ANON으로 Return 하도록 한다. 이걸 조금 더 짧게하기 위해 앞서 배운 fat arrow를 사용할 수도 있음. 이때 ternary operator (?) 와 콜론(:)를 적어서 조건문을 만들 수 있다. (null이 아니면 대문자로 하고, null이면 'ANON'을 return 해줘)
?? 이 의미하는 것: left ?? right 처럼 입력 하면, left가 null이면 right를 준다는 뜻이다. 위 예시에서 조건문을 모두 지우고 콜론(:) 자리에 Question Question operator (??)를 입력해주면 된다. (추가로 name이 null일 수 있다는 표시로 name에 ?를 붙여준다.)
QQequal operator (??=)
변수가 null이면 해당 값을 할당해줘
Typedef
typedef는 자료형에 자신만의 alias를 붙일 수 있게 해준다. (치환 하는 법)
위 이미지는 List<int> 를 ListOfInts로 치환한 예시이다.
위 이미지는 Map<string, string>를 UserInfo로 치환한 예시이다.
'PM 기술스터디' 카테고리의 다른 글
(Flutter Study) DART 언어 - Class.2 (0) | 2023.07.04 |
---|---|
(Flutter Study) DART 언어 - Class.1 (1) | 2023.06.29 |
(Flutter Study) Dart 언어 - DATA TYPES (11) | 2023.06.24 |
(Flutter Study) Dart 언어 - Variables (2) | 2023.06.24 |
PM 기술 스터디 - 객체지향 프로그래밍(Object-Oriented Programming, OOP) (2) | 2023.05.31 |
댓글