.generate
주어진 길이만큼 리스트를 생성하고, 각 요소에 대해 반복적인 패턴의 값을 할당하는 데 사용한다.
List.generate() 문법
List.generate(length, (index) => expression);
length - 생성할 리스트의 길이
index - 인덱스. 0부터 시작함. (인덱스 사용하지 않는 경우 _ )
expression - 각 인덱스에 들어갈 값. 동일값 or 계산식
장점
반복문 대신 함수로 깔끔하게 리스트 생성 가능
반복적인 패턴이나 계산식을 사용하는 리스트를 생성 가능
예시
- 0~9까지의 숫자 리스트 만들기
List<int> numbers = List.generate(10, (i) => i);
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
.filled
주어진 길이만큼 리스트를 생성하고, 모든 요소에 같은 값을 할당함
List.filled 문법
List.filled(length, E fill, {bool growable = false})
length - 생성할 리스트의 길이
fill - 각 요소에 채울 값
growable - 기본값 false. true로 설정하면 리스트 크기 변경 가능
장점
같은 값을 채운 리스트를 쉽게 생성할 수 있음.
리스트를 만들고 초기값을 부여할 때 유용함
예시
- 기본 int 리스트 만들기
List<int> zeros = List.filled(1000, 0);
1000개나 되는 리스트의 초기값을 일일히 지정해주지 않고 함수로 표현할 수 있다.
.generate, .filled 동시 사용 예시
- 빈 2차원 리스트 만들기
// 3x3 빈 배열 보드 초기화
List<List<String>> board = List.generate(3, (_) => List.filled(3,''));
// 리트코드 1275번 문제
// .filled 를 사용해 [' ', ' ', ' '] 생성
// .generate 를 사용해 [[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']] 생성. 즉, 빈 3 x 3 보드 생성
'Dart' 카테고리의 다른 글
[Dart] Dart에서 JSON 데이터 변환, 사용하기 (0) | 2025.04.14 |
---|---|
[Dart] 다트 콘솔 rpg 게임 - 캐릭터 부상 기능과 게임 종료 분기 추가 (0) | 2025.03.20 |
[Dart] writeAsStringSync 메서드를 이용한 파일 저장 (0) | 2025.03.19 |
[Dart] 정규표현식 - 문자열 검색 (0) | 2025.03.18 |
[Dart] dart:io의 여러가지 메서드로 csv 파일 읽기 (0) | 2025.03.17 |