Flutter
[Dart] function
냠냠쿠
2024. 6. 12. 13:17
728x90
1. fat arrow syntax
String sayHello(String name){
return "hello $name";
}
void main() {
print(sayHello('홍길동'));
}
위 코드를 아래와 같이 고칠 수 있다.
String sayHello(String name) => "hello $name";
void main() {
print(sayHello('홍길동'));
}
2. named argument를 이용한 Parameters
- 순서 다르게 parameters를 지정하더라도 name이 중요하기 때문에 상관없다.
//safety null 이 적용 되어 있기 때문에
//default value를 지정 해 준다.
String sayHello({
String name = '김길동',
int age = 0,
}) {
return "hello $name, you are $age";
}
void main() {
print(sayHello(
name: '홍길동',
age: 10,
));
}
- 사용자가 일반 함수를 호출하면 default value 로 출력하게 된다.
만약 default value가 없기를 바란다면, required를 붙여준다.
//safety null 이 적용 되어 있기 때문에
//default value를 지정 해 준다.
String sayHello({
required String name ,
required int age ,
}) {
return "hello $name, you are $age";
}
3. Parameter에 Optional 설정 하기
//age를 보내지 않아도 된다.
String sayHello(String name, [int? age = 20]) {
return "hello $name, you are $age";
}
void main() {
print(sayHello(
'홍길동'
));
}
4. QQ Operator
String capitalizeName(String? name) {
if(name != null){
return name.toUpperCase();
}
return 'test';
}
void main() {
capitalizeName('홍길동');
capitalizeName(null);
}
위 코드를 아래와 같이 수정 가능
String capitalizeName(String? name) =>
name != null ? name.toUpperCase() : 'test';
void main() {
capitalizeName('홍길동');
capitalizeName(null);
}
이 코드를 QQ Operator를 통해 더 짧게 수정 가능
String capitalizeName(String? name) => name?.toUpperCase() ?? 'test';
//name이 null이 아니면 왼쪽 값 출력
//name이 null이면 오른쪽 값 출력
void main() {
capitalizeName('홍길동');
capitalizeName(null);
}
4. QQ equals (QQ assignment Operator)
void main() {
String? name;
name ??= '홍길동'; // name이 null이라면 홍길동을 name에 넣는다.
//이미 여기서 name은 null이 될 수 없기 때문에 name을 출력하면 홍길동만 나온다.
name ??= '누군가'; // name이 null이라면 누군가를 넣는다.
print(name);
}
5. typedef
- 자료형에 alias를 붙일 수 있게 해 준다.
typedef ListOfInts = List<int>;
ListOfInts reverseListOfNumbers(ListOfInts list) {
var reversed = list.reversed;
return reversed.toList();
}
void main() {
print(reverseListOfNumbers([1,2,3])); //[3, 2, 1]
}
typedef UserInfo = Map<String, String>;
String sayHi(UserInfo userInfo){
return "hi ${userInfo['name']}";
}
void main() {
print(sayHi({"name":'홍길동'}));
}
728x90