반응형
안녕하세요. BlockDMask 입니다.
오늘은 플러터에서 리스트를 생성할 때 유용한 List.generate 함수에 대해 알아보겠습니다.
1. List.generate란?
List.generate는 Dart에서 제공하는 기능으로, 특정 개수의 리스트를 빠르게 생성할 때 사용됩니다. 이 함수는 반복적으로 특정 규칙을 적용하여 리스트의 각 요소를 초기화할 수 있도록 도와줍니다.
List<T> List.generate(
int length,
T Function(int index) generator,
{bool growable = false}
)
- length: 생성할 리스트의 길이
- generator: 각 인덱스에 대한 값을 생성하는 함수
- growable: 기본값은 false이며, true로 설정하면 리스트를 동적으로 확장 가능하게 만듭니다.
2. List.generate 기본 예제
void main() {
List<int> numbers = List.generate(5, (index) => index * 2);
print(numbers); // [0, 2, 4, 6, 8]
}
위 코드는 길이가 5인 리스트를 생성하며, 각 요소는 index * 2의 값을 가집니다.
3. growable 옵션 사용
void main() {
List<int> numbers = List.generate(5, (index) => index + 1, growable: true);
numbers.add(6);
print(numbers); // [1, 2, 3, 4, 5, 6]
}
growable을 true로 설정하면 리스트를 동적으로 확장할 수 있습니다.
4. 복잡한 객체 리스트 생성
class User {
String name;
int age;
User(this.name, this.age);
@override
String toString() => 'User(name: $name, age: $age)';
}
void main() {
List<User> users = List.generate(
3,
(index) => User('User$index', 20 + index),
);
print(users)
}
위 코드에서는 User 객체 리스트를 생성하며, index 값을 활용하여 각 사용자 객체의 속성을 초기화합니다.
5. 2차원 리스트 생성
void main() {
List<List<int>> matrix = List.generate(3, (i) => List.generate(3, (j) => i + j));
print(matrix);
}
2차원 리스트도 쉽게 생성할 수 있으며, 각 행과 열의 인덱스를 활용하여 값을 지정할 수 있습니다.
이상, 플러터에서 List.generate를 활용하는 다양한 방법에 대해 알아보았습니다.
오늘도 읽어주셔서 감사합니다.
반응형
'<개인공부> > [Flutter, Dart]' 카테고리의 다른 글
[Dart] 다트 Null Safety와 !, ?, ??, ??= 연산자 (0) | 2025.02.13 |
---|---|
[Dart] 다트 확장 메서드(Extension Methods) - 클래스에 기능 추가 (0) | 2025.02.10 |
[Dart] 다트 .. (캐스캐이드 연산자) 정리 (0) | 2025.02.05 |
[Flutter] 플러터와 안드로이드 스튜디오 설치 총정리 (10) | 2020.09.10 |
[Dart] 다트 기본 문법 정리 2편 (is, as) (2) | 2020.05.16 |
[Dart] 다트 기본 문법 정리 1편 (자료형, 연산자, 주석) (0) | 2020.05.10 |