-
개인 공부 목적으로, 정확하지 않은 정보가 있을 수 있습니다.
상황
Flutter 개발 중, TextField에 값 입력 시 검색 추천값을 띄워주고 싶었다.
EasyAutocomplete라는 패키지(링크)가 있어서 쉽게 적용했지만, 원리가 궁금했다.
근본적으로, List같은 Enumerable class를 필터링 하는 방법이 궁금했다.설명
새로운 Enumerable 객체를 하나 만들어서, for loop 내부에서 값들을 직접 필터링하여 새로 만든 객체에 add (push) 하면 되는 일이다.
하지만 당연히 쉽게 쓰라고 만들어놓은 메소드가 있을 것이라고 생각해서 찾아봤다.Enumerable.where
where이라는 메소드였다.
나는 dart에서 사용했지만, 아마 다른 언어도 분명히 where 메소드가 있을 것으로 보인다.- where 메소드는 bool을 반환하는 함수를 인자로 받는다.
- 인자로 받은 함수가 true인 경우의 값들만 모아서
- 반환한다.
예제
List<String> suggestions = <String>["push up", "pull up", "chin up", "lat pull down"]; String keyword = "pull"; List<String> filteredSuggestions = suggestions.where((element) => element.contains(keyword));
해결
Enumerable.where 메소드를 사용하자.
'개발 > 오류조치 및 팁' 카테고리의 다른 글
Android Studio virtual device (AVD)가 먹통인 경우 (0) 2022.02.27 간단한 객체 직렬화 Serialization 방법 (인터페이스 구현 X) (0) 2022.02.18 JSON.parse() 메소드에서 발생하는 Unexpected token 오류 (0) 2022.02.07 AndroidStudio 에뮬레이터에서 앱 실행시 [INSTALL_FAILED_INSUFFICIENT_STORAGE] 오류 (0) 2022.02.03 Heroku에서 node.js 앱 배포 중 발생할 수 있는 PORT 관련 문제 (0) 2022.02.03 댓글