728x90
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(result3);
print('---------------');
final result4 = getNewJeansWithType2();
for (final item in result4) {
print(item.name);
print(item.age);
}
print(result3);
print('---------------');
final result5 = getMinji();
print(result5);
}
// 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 [(name: '민지', age: 20), (name: '혜린', age: 18)];
}
(String name, String group, int age) getMinji() {
return ('민지', '뉴진스', 19);
}
------------------------------------------------
void main() {
final (name, age) = ('민지', 20);
print(name);
print(age);
final newJeans = ['민지', '혜린'];
final [a, b] = newJeans;
print(a);
print(b);
final numbers = [1, 2, 3, 4, 5, 6, 7, 8];
final [x, y, ..., z] = numbers;
print(x);
print(y);
print(z);
final [xx, yy, ...rest, zz] = numbers;
print(xx);
print(yy);
print(zz);
print(rest);
final [xxx, _, yyy, ...rest2, zzz, _] = numbers;
print(xxx);
print(yyy);
print(zzz);
print(rest2);
final minJiMap = {'name': '민지', 'age': 19};
final {'name': name3, 'age': age3} = minJiMap;
print(name3);
print(age3);
print('-------------');
final minjiIdol = Idol(name: '민지', age: 19);
final Idol(name: name4, age: age4) = minjiIdol;
print(name4);
print(age4);
}
class Idol {
final String name;
final int age;
Idol({
required this.name,
required this.age,
});
}
------------------------------------------------
void main() {
// Validation
final minJi = ('민지', 20);
final (name as String, age as int) = minJi;
print(name);
print(age);
// switcher('aaa');
// switcher('bbb');
// switcher(['1', '2']);
// switcher([1,2]);
// switcher([1,2,3]);
// switcher([1,2,3,4]);
// switcher([6,'9']);
switcher(7);
switcher(17);
print(switcher2(5, true));
print(switcher2(7, true));
forLooper();
ifMatcher();
}
void switcher(dynamic anything) {
switch (anything) {
case 'aaa':
print('match: aaa');
case ['1', '2']:
print('match: [1, 2]');
case [_, _, _]:
print('match: [_,_,_]');
case [int a, int b]:
print('match: [int $a, int $b]');
case < 10 && > 5:
print('match: < 10 && > 5');
default:
print('no match');
}
}
String switcher2(dynamic val, bool condition) => switch (val) {
5 => 'match: 5',
7 when condition => 'match 7 and true',
_ => 'no match',
};
void forLooper() {
final List<Map<String, dynamic>> members = [
{'name': '민지', 'age': 20},
{'name': '혜린', 'age': 19},
];
for (final member in members) {
print(member['name']);
print(member['age']);
}
print('------------------------------');
for (var {'name': name, 'age': age} in members) {
print(name);
print(age);
}
}
void ifMatcher() {
final minji = {'name': '민지', 'age': 20};
print('------------------------------');
if (minji case {'name': String name, 'age': int age}) {
print(name);
print(age);
}
}
(민지, 20)
민지
20
---------------
민지
20
혜린
18
[(민지, 20), (혜린, 18)]
---------------
민지
20
혜린
18
[(민지, 20), (혜린, 18)]
---------------
(민지, 뉴진스, 19)
------------------------------------------------
민지
20
민지
혜린
1
2
8
1
2
8
[3, 4, 5, 6, 7]
1
3
7
[4, 5, 6]
민지
19
-------------
민지
19
------------------------------------------------
민지
20
match: < 10 && > 5
no match
match: 5
match 7 and true
민지
20
혜린
19
------------------------------
민지
20
혜린
19
------------------------------
민지
20
'🥖 Bread Basics > Flutter' 카테고리의 다른 글
Dart 언어 기본기 배우기 (0) | 2025.04.28 |
---|---|
mixin, sealed, base 클래스 (0) | 2025.04.25 |
Future, async, await, stream, listen, sink, yield (0) | 2025.04.25 |
형변환, map, where, reduce/fold, 체이닝 (0) | 2025.04.25 |
@ovveride (0) | 2025.04.24 |
OOP의 상속!! (0) | 2025.04.24 |
[Flutter] Hot Reload란? (0) | 2025.04.23 |