flutter

Dart 함수형 프로그래밍

함수형 프로그래밍

리스트

리스트 → Map 으로 변환

리스트 → Set 으로 변환

List<String> aPink = ['a', 'b', 'c'];

print(aPink.asMap()); // {0: a, 1: b, 2: c}
print(aPink.toSet()); // {a, b, c}

스트링 → List 로 변환

String number = '1234';

// [1.jpg, 2.jpg, 3.jpg, 4.jpg]
final parsed = number.split('').map((x) => '$x.jpg').to List();

List 필터링

List<Map<String, String>> people = [
	{
		'name': 'a',
		'group': 'A',
	},
	{
		'name': 'b',
		'group': 'B',
	}
]

// group의 값이 A인 것들만 가져와서 리스트로 바꾸기
final aPink = people.where((x) => x['group'] == 'A').toList()

유용한 함수

  • reduce : prev는 처음 값, 그다음부터는 이전 계산값의 결과값 반드시 reduce 이전의 타입과 같은 타입만 반환할수 있다. number 타입이 int 였는데 계산을 String 으로 해서 반환하면 에러가 발생한다.

    final result = number.reduce((prev, next) => prev + next)
    
  • fold : reduce와 유사하지만 처음 값을 하나 지정해줄 수 있고, 이전 타입과 같지 않은 다른 타입을 반환하는 것도 가능하다.

    final result = number.fold(0, (prev, next) => prev + next)