Dart & Flutter
Dart_Basic__003[Functions]
HELLICAT
2024. 8. 15. 19:00
반응형
void는 아무것도 리턴하지 않겠다는 선언이다. 리턴하는 타입에 맞게 잘 설정해주어야한다.
String immediatelyString(String something) => "$something";
int whatIsYourAbility(int abil) {
int calculate = abil * 40;
return calculate;
}
void sayHello(String say) {
int ability = whatIsYourAbility(4);
String stringContents = immediatelyString("new Contents");
print(
'hello $say. nice meet you. Your ability is $ability. and $stringContents.');
}
void main() {
sayHello("joon");
}
Named Parameters
named Parameter를 사용하게 되면 parameter에게 기본값을 주거나 required를 지정해주어야 작동한다.
void sayHello({
required String say,
required int ability,
String stringContents = "",
}) {
print(
'hello $say. nice meet you. Your ability is $ability. and $stringContents.');
}
void main() {
sayHello(say: "hi", ability: 20, stringContents: "i am genius");
}
Optional Positional Parameters
void sayHello(String say, int ability,
[String? stringContents = "i am genius"]) {
print(
'hello $say. nice meet you. Your ability is $ability. and $stringContents.');
}
void main() {
sayHello("hoho", 2);
}
QQ Operator
// String capitalizeName(String? name) {
// if (name != null) {
// return name.toUpperCase();
// } else {
// return 'Anonymous';
// }
// }
// String capitalizeName(String? name) =>
// name != null ? name.toUpperCase() : 'Anonymous';
String capitalizeName(String? name) => name?.toUpperCase() ?? 'Anonymous';
void main() {
var name = capitalizeName('choi');
var nullVal = capitalizeName(null);
print(name);
print(nullVal);
// QQ Assignment Operator
String? firstName;
firstName ??= 'Kim';
print(firstName);
}
typedef
타입스크립의 타입 정의와 비슷하다.
typedef ListOfInts = List<int>;
ListOfInts reverseListOfNumber(ListOfInts list) {
var reverse = list.reversed;
// return [...reverse];
return reverse.toList();
}
void main() {
ListOfInts reverse = reverseListOfNumber([1, 2, 3, 4, 5]);
print(reverse);
}
728x90