* named parameters - required , Optional Positional Parameters, QQ operator (??), Typedef
void : 아무것도 return 하지 않는다
void sayHello(String name) {
print('hello $name');
}
String sayHello2(String name) {
return 'hello $name';
}
// String sayHello2(String name) => 'hello $name';
// sayHello2 함수와 위 주석은 동일 작동(fat arrow syntax)
//fat arrow syntax
num plus(num a, num b) => a + b;
void main() {
print(sayHello2('name')); //hello name
sayHello('name'); //hello name
}
.
.
.
named parameters
(flutter에서 자주 사용)
- 파라미터의 이름을 지정해주는 것
//nullable 처리 :
//1. 초기 값 설정 (ex. String name = 'name')
//2. 'required' modifier (required 키워드로 반드시 필요함을 선언)
//'required' modifier
String sayHello({
required String name,
required int age,
required String country,
}) {
return 'hello $name, $age, $country';
}
void main() {
print(sayHello(
name: 'name',
age: 21,
country: 'korea',
));
}
.
.
.
Optional Positional Parameters
//Optional Positional Parameters(받지 않아도 되는 파라미터 추가하기)
//1. [] 로 감싸기
//2. ? 키워드 추가(null일 수 있음)
//3. 초기 값 선언
String sayHello(String name, int age,
//Optional Positional Parameters
[String? country = 'korea']) =>
'hello $name, $age, $country';
void main() {
var result = sayHello('name', 26); //hello name, 26, korea
var result2 = sayHello('name2', 2); //hello name2, 2, korea
print(result);
print(result2);
}
.
.
.
QQ operator (??)
- js의 &&와 유사
- left ?? right : left가 null일경우 right 출력
//이름을 대문자로 변경하는 함수
//?? : 좌항이 null 일 경우 우항 출력
String capitalizeName(String? name) =>
name?.toUpperCase() ?? 'ANON';
void main() {
capitalizeName('jonghoon');
capitalizeName(null);
}
??=
void main() {
String? name;
// ??= : 좌측 값이 null이면 우측 값 출력
name ??= 'jonghoon';
}
.
.
.
Typedef
자료형에 alias를 붙일 수 있게 해줌(ts의 타입 선언<type, interface와 유사>)
(기본 사용법)
typedef ListOfInts = List<int>;
//list를 뒤집는 함수
ListOfInts reverse(ListOfInts list) {
var reversed = list.reversed;
//list를 reversed할 경우 iterable이 됨
//toList()로 다시 list로 변경
return reversed.toList();
}
void main() {
var reversedList = reverse([1, 2, 3]);
print(reversedList); //[3, 2, 1]
}
** 구체화 된 데이터 타입을 지정하려면, class를 사용해야 함
'개념,기능 정리' 카테고리의 다른 글
dart(5) classes (0) | 2025.02.05 |
---|---|
dart(3) Data Types (0) | 2025.02.03 |
dart(2) 설치, Variables (0) | 2025.02.03 |
dart(1) 배경 (0) | 2025.02.03 |
타입스크립트 타입 (0) | 2024.09.09 |