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 키워드를 사용 할 수 없다.