List.generate()는 Dart에서 리스트(List)를 생성할 때 사용하는 유용한 메서드입니다. 주어진 크기만큼의 리스트를 생성하고, 각 요소를 특정 규칙에 따라 초기화할 수 있도록 해줍니다.
기본 구조
dart
코드 복사
List.generate(length, (index) => element)
매개변수 설명
- length: 생성할 리스트의 길이 (즉, 리스트 안에 몇 개의 요소가 들어갈지 지정).
- (index) => element: 각 요소를 초기화하는 함수. 이 함수는 **현재 인덱스(index)**를 인자로 받아 해당 위치에 들어갈 값을 반환합니다.
리턴값
- List.generate()는 길이가 length인 리스트를 반환하며, 각 요소는 (index) => element 함수에 따라 초기화됩니다.
예제 1: 단순 리스트 생성
dart
코드 복사
void main() { List<int> numbers = List.generate(5, (index) => index); print(numbers); // 출력: [0, 1, 2, 3, 4] }
- 여기서 length는 5입니다. 즉, 리스트의 길이는 5입니다.
- (index) => index 함수는 현재 인덱스를 반환하므로, 결과 리스트는 [0, 1, 2, 3, 4]가 됩니다.
예제 2: 인덱스 값을 제곱한 리스트
dart
코드 복사
void main() { List<int> squares = List.generate(5, (index) => index * index); print(squares); // 출력: [0, 1, 4, 9, 16] }
- (index) => index * index 함수는 인덱스의 제곱을 반환합니다.
- 결과 리스트는 [0, 1, 4, 9, 16]이 됩니다.
예제 3: 문자열 리스트 생성
dart
코드 복사
void main() { List<String> greetings = List.generate(3, (index) => 'Hello $index'); print(greetings); // 출력: ['Hello 0', 'Hello 1', 'Hello 2'] }
- 각 요소가 'Hello'와 현재 인덱스를 포함한 문자열로 초기화됩니다.
예제 4: 2차원 리스트 (행렬) 생성
dart
코드 복사
void main() { List<List<int>> matrix = List.generate(3, (_) => List.generate(3, (index) => index + 1)); print(matrix); // 출력: // [ // [1, 2, 3], // [1, 2, 3], // [1, 2, 3] // ] }
- 여기서 외부 List.generate(3, ...)는 3개의 행을 생성합니다.
- 내부 List.generate(3, (index) => index + 1)는 각 행에 대해 3개의 요소를 생성하고, 그 값을 1, 2, 3으로 채웁니다.
List.generate()와 List.filled() 비교
- List.generate()는 각 요소를 동적으로 초기화할 때 유용합니다.
- List.filled()는 고정된 값으로 리스트를 채울 때 사용됩니다.
dart
코드 복사
// List.filled 사용 예시 List<int> filledList = List.filled(3, 5); // [5, 5, 5]
- List.filled(3, 5)는 [5, 5, 5]로 채워진 리스트를 생성합니다.
'공부내용' 카테고리의 다른 글
과제중 생각한 것들 (1) | 2024.11.14 |
---|---|
다트문법_List<int> a = [0,0]; a == [0,0]; → false?? (2) | 2024.11.13 |
오늘 배운 이것 저것. Flutter 기초 (2) | 2024.11.11 |
프로젝트 진행하며 배운 몇 가지들..(문법) (0) | 2024.11.08 |
다트문법_random함수 (0) | 2024.11.06 |
댓글