Programming/Flutter & Dart

Dart 함수 코드 요약(named, optional, QQ operator)

DevMonster 2023. 12. 3. 21:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* Dart 함수 요약 */
 
/* defining a function */
import 'package:test/test.dart';
 
String func(String name){
  return 'hello $name!';
}
String func2(String name) => 'hello $name!'// func와 같은 코드 =>가 return이랑 같음
 
/* named parameter */
String func3({ // 중괄호 추가하면 named argument
  String name = 'anon'// null safety로 인해 default 값 = 추가
  required int age, // default 대신 required로 필수로 값 받기
  String? country, // 또는 '?'를 넣어 null을 받을 수 있게 처리
  }) => 'hello $name $age $country';
 
/* optional positional parameters */
String func4(
  String name,
  int age,
  [String? country = 'cuba'// 대괄호가 포함되면 optional
  ) => 'hello $name $age $country';
 
/* QQ operator */
String func5(String? name){ // func5,6,7 모두 같은 코드
  if(name != null){
    return name.toUpperCase();
  }
  return 'ANON';
}
String func6(String? name) => name != null ? name.toUpperCase() : 'ANON';
String func7(String? name) => name?.toUpperCase() ?? 'ANON'// null이 아니면 좌항 리턴
 
/* typedef */
typedef ListOfInts = List<int>;
ListOfInts doReverseList(ListOfInts list){
  var reversed = list.reversed;
  return reversed.toList();
}
 
void main() {
  print(func('devmonster'));
  print(func2('devmonster'));
  print(func3(age: 12, name: 'devmonster', country: 'Korea'));
  print(func4('devmonster'12));
  String? name;
  name ??= 'devmonster'// name이 null이면 devmonster 할당
}
cs
728x90
반응형