Skip to content

Dart(Functional)

wonhopark89-dev edited this page Dec 21, 2022 · 1 revision
void main() {
  List<String> blackpink = ['지수', '제니','리사','로제','제니'];
  
  // print(blackpink.asMap());
  // print(blackpink.toSet());
  
  Map blackpinkMap = blackpink.asMap();
  print(blackpinkMap.keys.toList());
  print(blackpinkMap.values.toList());
  
  Set blackpinkSet = Set.from(blackpink);
  print(blackpinkSet.toList());
  
//   final newBlackpink = blackpink.map((x) {
//     return '블랙핑크 $x';
//   });
    
  
  final newBlackpink = blackpink.map((x) => '블랙핑크 $x');
  
  print(newBlackpink.toList());
  
  print(newBlackpink.toList() == blackpink);
  
  String number = '112345';
  final parsed = number.split('').map((x) => '$x.jpg').toList();
  print(parsed);
  
  //
  
  Map<String, String> harryPotter = {
    'harry potter': '해리포터',
    'hermione':'헤르미온느'
  };
  
  final newHarryPotter = harryPotter.map((key,value) => MapEntry(
    'key $key',
    'name $value',
  ));
  
  print(harryPotter);
  print(newHarryPotter);
  
  print(harryPotter.keys.map((x) => 'zzzz_$x').toList());
  print(harryPotter.values.map((x) => 'zzzz_$x').toSet());
  
  //
  
  List<Map<String, String>> people = [
    { 'name':'지수', 'group':'블랙핑크'},
     { 'name':'로제', 'group':'블랙핑크'},
     { 'name':'뷔', 'group':'BTS'},
     { 'name':'RM', 'group':'BTS'} 
  ];
  
  final blackpinkPeople = people.where((x) => x['group'] == '블랙핑크').toList();
  
  print(blackpinkPeople);
  //
  
  List<int> numbers = [1,2,3,4,5,6,7];
  numbers.reduce((prev, next) {
    print('prev, next, total---- $prev, $next, ${prev+next}');
    return prev+next;
  });
  
  final sum = numbers.fold<int>(0, (prev, next) => prev + next);
  print(sum);
  
  final length = blackpink.fold<int>(0, (prev, next) => prev + next.length );
  print(length);
  
  final paredPeople = people.map((x) => Person(name: x['name']!, group: x['group']!)).toList();
  print(paredPeople.toString());
  
  final bts = people.map((x) => Person(name: x['name']!, group: x['group']!)).where((x) => x.group == 'BTS');
  print(bts);
}

class Person {
  final String name;
  final String group;
  
  Person({required this.name, required this.group});
  
  @override
  String toString() {
    return 'Persion(name:$name, group:$group)';
  }
}

Clone this wiki locally