Flutter/Dart - 리스트 선언 및 초기화

리스트 선언 및 초기화하는 방법을 소개합니다.

1. 리스트 선언

기본적으로 아래와 같이 리스트를 선언할 수 있습니다. 초기값은 설정하지 않았기 때문에 빈 리스트가 생성됩니다.

List<int> list = [];

var을 사용하는 경우, <int>[]으로 리스트의 타입을 지정하여 선언할 수 있습니다.

var list = <int>[];

2. 리스트 선언 및 초기화

아래와 같이 초기 값을 입력하여 리스트 선언과 동시에 초기화를 할 수 있습니다.

void main() {

    List<int> list = [1,2,3,4,5];
    print(list);

    List<String> list2 = ["a", "b", "c", "d"];
    print(list2);
}

Output:

[1, 2, 3, 4, 5]
[a, b, c, d]

다른 방법으로, List.from(Iterable)을 사용하여 초기화 할 수 있습니다. 인자로 다른 리스트를 전달하면, 그 리스트의 요소들이 초기값으로 설정됩니다.

void main() {

    List<int> list = List.from([1, 2, 3, 4, 5]);
    print(list);
}

Output:

[1, 2, 3, 4, 5]

3. 고정된 크기의 리스트 선언 : List.filled()

List.filled(length, fill)는 리스트의 크기가 length인 리스트를 생성하며, fill 값을 초기 값으로 초기화합니다.

void main() {

    var list = List.filled(5, 0);
    print(list);
}

Output:

[0, 0, 0, 0, 0]

이 리스트는 고정된 크기(fixed size)로 생성이 되는데, fixed-size는 리스트의 크기가 변경되지 않는다는 의미입니다.

만약 remove(), add() 등의 메소드로 리스트의 크기를 변경하려고 하면 아래와 같이 예외가 발생합니다.

void main() {

    var list = List.filled(5, 0);
    list.add(10);
}

Output:

Unhandled exception:
Unsupported operation: Cannot add to a fixed-length list
#0      FixedLengthListMixin.add (dart:_internal/list.dart:21:5)
#1      main

리스트 길이를 변경하지 않고, 값을 변경하는 것은 허용됩니다.

void main() {

    var list = List.filled(3, 0);
    print(list);

    list[0] = 1;
    list[1] = 2;
    list[2] = 3;
    print(list);
}

Output:

[0, 0, 0]
[1, 2, 3]

3.1 List.filled()로 가변적인 크기의 리스트 생성

List.filled(length, fill, growable: true)는 지정된 크기의 리스트를 생성하며, 이 리스트는 add(), remove() 등으로, 동적으로 길이를 변경할 수 있습니다.

void main() {

    var list = List.filled(3, 0, growable: true);
    print(list);

    list.add(10);
    list.add(20);
    list.add(30);
    print(list);
}

Output:

[0, 0, 0]
[0, 0, 0, 10, 20, 30]

4. 고정된 크기의 리스트 선언 : List.from()

List.from([...], growable: false)로 고정된 크기의 리스트를 생성할 수 있습니다.

  • [...]으로 초기 값을 설정할 수 있음
  • growable: false를 입력하면 고정된 크기(fixed-size)의 리스트 생성
  • add() 등으로 리스트 크기를 변경하려고 하면 Exception이 발생
void main() {

    var list = List.from([1, 2, 3], growable: false);
    print(list);
}

Output:

[1, 2, 3]

5. 연속적인 값으로 리스트 초기화 : List.generate()

List.generate(length, generator)를 이용하면 연속적은 숫자로 리스트를 초기화할 수 있습니다.

예를 들어, length를 5로 입력하면, generator 함수로 0에서 4까지의 index가 전달되며, 함수에서 리턴되는 값으로 초기값이 설정됩니다.

void main() {

    var list = List.generate(5, (index) => index + 1);
    print(list);
}

Output:

[1, 2, 3, 4, 5]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha