<개인공부>/[Flutter, Dart]

[Flutter] 플러터 List.generate 알아보기

BlockDMask 2025. 3. 21. 01:55
반응형

안녕하세요. 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를 활용하는 다양한 방법에 대해 알아보았습니다.

오늘도 읽어주셔서 감사합니다.

반응형