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