상세 컨텐츠

본문 제목

5. Dart 3.0 업데이트 문법

Flutter(Dart 포함)

by 본투비곰손 2023. 9. 12. 22:23

본문

728x90

Record

void main() {
  final result = nameAndAge({'name': '민지', 'age': 20});
  print(result);
  print(result.$1);
  print(result.$2);
}

//Record
(String, int) nameAndAge(Map<String, dynamic> json) {
  return (json['name'] as String, json['age'] as int);
}

void main() {
  final result = nameAndAge({'name': '민지', 'age': 20});
  print(result);
  print(result.$1);
  print(result.$2);
  print('-------------------------------');
  final result3 = getNewJeansWithType();

  for (final item in result3) {
    print(item.$1);
    print(item.$2);
  }
  print('-------------------------------');
  final result4 = getNewJeansWithType2();

  for (final item in result4) {
    print(item.$1);
    print(item.$2);
  }
  print('-------------------------------');
  final result5 = getNewJeansWithType3();

  for (final item in result5) {
    print(item.name);
    print(item.age);
  }
  print('-------------------------------');

  final result6 = getMinji();
  print(result6);
}

//Record
(String, int) nameAndAge(Map<String, dynamic> json) {
  return (json['name'] as String, json['age'] as int);
}

List<Map<String, dynamic>> getNewJeans() {
  return [
    {'name': '민지', 'age': 20},
    {'name': '해린', 'age': 18}
  ];
}

List<(String, int)> getNewJeansWithType() {
  return [('민지', 20), ('해린', 18)];
}

List<(String name, int age)> getNewJeansWithType2() {
  return [('민지', 20), ('해린', 18)];
}

List<({String name, int age})> getNewJeansWithType3() {
  return [(name: '민지', age: 20), (name: '해린', age: 18)];
}

(String name, String group, int age) getMinji() {
  return ('민지', '뉴진스', 20);
}

  • final로 클래스를 선언하면 extends, implement, mixin 으로 사용이 불가능하다.
  • base로 선언하면 extends는 가능하지만 implement는 불가능하다.
  • base, sealed, final로 선언된 클래스만 extend가 가능하다.
  • interface로 선언하면 implement만 가능하다.
  • sealed 클래스는 adstract이면서 final이다.
  • 또한 sealed 클래스는 패턴 매칭을 사용할 수 있도록 해준다.
  • mixin 클래스로 선언 하여 사용할 수 있다.(mixin과 동일한 특성)
    • extends나 with를 사용할 수 없다.
    • on 키워드를 사용 할 수 없다.
728x90

관련글 더보기