SSONG Cloud
Dart 기본 - Function 본문
반응형
1. Reference
https://nomadcoders.co/dart-for-beginners/lobby
Dart 시작하기 – 노마드 코더 Nomad Coders
Flutter 앱 개발을 위한 Dart 배우기
nomadcoders.co
2. Function
1) Declaration
- 일반 함수 방식
void printName(name) {
print(name);
}
- arrow function
void printName(name) => print(name);
2) Parameter
- Positional Parameter
: parameter의 순서에 따라 대입됨
void printNameAndAge(String? name, int? age) {
print('name = $name, age = $age');
}
void main() {
// name에는 myName, age에는 27이 대입됨
printNameAndAge('myName', 27); // name = myName, age = 27
}
- Named Parameter
: parameter의 이름을 지정하여 대입할 수 있음
: 중괄호 사용
void printNameAndAge({String? name, int? age}) {
print('name = $name, age = $age');
}
void main() {
printNameAndAge(name: 'myName', age: 27); // name = myName, age = 27
}
- Default Value
: parameter의 기본값을 지정할 수 있음
void printNameAndAge({String? name, int age = 17}) {
print('name = $name, age = $age');
}
void main() {
printNameAndAge(name: 'myName'); // name = myName, age = 17
}
- Optional Positional Parameter
: 특정 parameter를 넣지 않을 수 있도록 함
: 대괄호 사용
void printNameAndAge(String name, [int? age]) {
print('name = $name, age = $age');
}
void main() {
printNameAndAge('myName'); // name = myName, age = null
}
- Required
: parameter를 필수조건으로 만들 수 있음
: required로 선언 후 매개변수로 넣어주지 않으면 함수 호출부에서 에러 발생
void printNameAndAge({required String name, required int age}) {
print('name = $name, age = $age');
}
void main() {
printNameAndAge(name: 'myName', age: 27); // name = myName, age = 27
}
3) operator
- QQ Operator(??)
: ??의 왼쪽 값이 null이라면 오른쪽 값을 return
String upperWord(String word) => word.toUpperCase();
void main() {
print(upperWord('hello'));
print(upperWord(null)); // Error
}
* 변환1
String upperWord(String? word) => word == null ? "NULL" : word.toUpperCase();
void main() {
print(upperWord('hello')); // HELLO
print(upperWord(null)); // NONE
}
* 변환2 (QQ Operator 사용)
String upperWord(String? word) => word?.toUpperCase() ?? "NULL";
void main() {
print(upperWord('hello')); // HELLO
print(upperWord(null)); // NULL
}
- QQ Assignment Operator(??=)
: 대입의 대상이 null인 경우 할당
void main() {
String? name;
name ??= 'myName';
name ??= 'changedName'; // Warning - 왼쪽 값이 항상 null이 아니기 때문에 changedName이 name에 대입될 수 없음
print(name); // myName
}
4) typedef
: 자료형에 alias 설정 가능
List<int> makeList(List<int> list) => list;
* 변환 후
ListofInt makeList(ListofInt list) => list;
반응형
'프로그래밍 > Flutter' 카테고리의 다른 글
Dart 기본 - Class (0) | 2023.01.08 |
---|---|
Dart 기본 - Data Type (0) | 2023.01.08 |
Dart 기본 - Variables (0) | 2023.01.08 |
Comments