JiSoo's Devlog
[Dart 시작하기] Section 3 본문
String sayHello(String name){
return "Hello $name nice to meet you!";
}
void main(){
print(sayHello('jisoo'));
}
fat arrow syntax ↓
String sayHello(String name) => "Hello $name nice to meet you!";
num plus(num a, num b) => a + b;
fat arrow syntax는 곧바로 return하는 거랑 같은 의미
Dart의 function은 named parameter을 지원한다
name parameters는 명시적으로 required로 표시되지 않는 한 선택 사항이다
기본값을 제공하지 않거나 named parameters를 필수로 표시하지 않으면 해당 유형은 기본값이 null이 되기 때문에 null을 허용해야 한다
String sayHello({
String name = 'anaon',
int age = 99,
String country = 'wakanda',
}) {
return "Hello $name, you are $age, and you come from $country";
}
void main() {
print(sayHello(
age: 12,
country: 'cuba',
name: 'jisoo',
));
}
String sayHello({
required String name,
required int age,
required String country,
}) {
return "Hello $name, you are $age, and you come from $country";
}
void main() {
print(sayHello(
age: 12,
country: 'cuba',
name: 'jisoo'
));
}
named argument를 생성하는 두 가지 방법
1. null safety 때문에 default value를 줘서 만들 수 있다
2. required modifier를 이용해 필수 값으로 만들 수 있다
named parameter은 funciton 호출 부분만 읽어도 호출에 뭐가 필요한지 알 수 있기 때문에 이 방법을 더 권장
optional positional parameter
대괄호로 감싸주고 널이 될 수도 있다는 것을 표시하고 기본값 주기
String sayHello(String name, int age, [String? country = 'cuba']) =>
'Hello $name, you are $age years old from $country';
void main() {
var results = sayHello('jisoo', 2);
print(results);
}
QQ operator
String capitalizeName(String? name) {
if (name != null) {
return name.toUpperCase();
}
return 'ANON';
}
이렇게 하면 name이 null일 수도 아닐 수도 있다고 얘기하는 것
String capitalizeName(String? name) =>
name != null ? name.toUpperCase() : 'ANON';
이렇게 fat arrow 방식도 가능
String capitalizeName(String? name) => name?.toUpperCase() ?? 'ANON';
이렇게 ?? 도 사용할 수 있는데 만약 좌항이 null이면 우항을 return 하고 좌항이 null이 아니면 그대로 좌항을 return
QQ equals (QQ assignment operator)
void main() {
String? name;
name ??= 'jisoo';
}
만약 name이 null이면 jisoo가 나오도록 할당
변수 안에 값이 null일 때를 체크해서 값을 할당해 줄 수 있다
typedef는 자료형에 alias를 붙일 수 있게 해 준다
typedef ListOfInts = List<int>;
ListOfInts reverseListOfNumbers(ListOfInts list){
var reversed = list.reversed;
return reversed.toList();
}
void main() {
print(reverseListOfNumbers([1, 2, 3]));
}
typedef UserInfo = Map<String, String>;
String sayHi(Map<String, String> userInfo) {
return "Hi ${userInfo['name']}";
}
void main() {
sayHi({"name": "jisoo"});
}
구조화된 data의 형태를 지정하고 싶다면 class를 만들어야 한다
'App > Dart' 카테고리의 다른 글
[Dart 시작하기] Section 4 (1) | 2024.01.28 |
---|---|
[Dart 시작하기] Section 2 (0) | 2024.01.16 |
[Dart 시작하기] Section 1 (0) | 2024.01.16 |