[Dart]List

한상욱·2022년 12월 7일
0

Dart문법

목록 보기
8/15
post-thumbnail

오늘의 포스팅 주제는 List형 데이터입니다. 다른 프로그래밍 언어에서는 흔히 배열이라고도 불립니다. 그러면 Dart의 List에 대해서 한번 알아보겠습니다.

List 선언

List형 데이터는 아래 예시처럼 선언할 수 있습니다.

void main() {
  List<String> students = ['영희', '철수', '민수'];
}

맨 앞에 List라고 지정을 해주고 뒤에 <>안에 데이터 타입이 선언되어있는 것을 볼 수 있는데요. 이렇게 <>안에 데이터 타입을 지정해주는 것을 제너릭이라고 합니다. 제너릭은 구성 성분의 데이터 타입이라고 생각하면 됩니다. 저 List에는 String데이터만 존재합니다. 이럴때, String을 제너릭을 이용해서 명시할 수 있습니다. 물론 지정하지 않아도 됩니다. 하지만 지정하는 것이 좋습니다.

제너릭

제너릭을 지정하는 이유에 대해서 잠깐 짚고 넘어가겠습니다. 여러분들이 어떤 프로그램 코드를 짜고 있습니다. 그 코드 중 어떤 알고리즘에서 특정 데이터 타입을 다뤄야만 의도한 결과가 나온다고 하겠습니다. 그럴때, 바로 제너릭을 사용하는 겁니다. 위에 List에 int형 데이터를 추가하면 에러가 발생합니다. 원래라면 발생하지 않겠죠? 제너릭으로 데이터 타입을 명시했기 때문에 발생하는 것입니다. 이 점을 이용해서 실수를 줄일 수 있습니다.

List 데이터 접근

List의 데이터에 접근하기 위한 방법은 인덱스를 이용하는 것입니다. 컴퓨터는 0이 맨 처음인것은 다들 알고계시겠죠?? 그렇기에 맨 첫번째 데이터는 0이라는 인덱스를 가지고 있습니다.

void main() {
  List<String> students = ['영희', '철수', '민수'];
  
  print(students[0]);
  print(students[1]);
  print(students[2]);
}

>>영희
>>철수
>>민수

추가적으로 List는 다양한 기능을 제공하고 있습니다. 그 중 몇가지만 예를 들어보겠습니다.

void main() {
  List<String> students = ['영희', '철수', '민수'];
  
  print(students.length); //List의 길이를 반환
  print(students.reversed); //List의 역순을 반환
  print(students.first); //List의 첫번째 데이터를 반환
  print(students.isEmpty); //List가 비었는지 boolean데이터를 반환
}

>> 3
>> (민수, 철수, 영희)
>> 영희
>> false

반복문에서의 List활용

반복문을 자주 사용하다보면, 매개변수를 사용하지 않고, List를 이용해서 반복문을 사용하는 경우가 발생합니다. 그러한 경우 dart에서는 다음과 같이 사용할 수 있습니다.

void main() {
  List<String> students = ['영희', '철수', '민수'];
  
  for (var i = 0; i < students.length; i++) {
    print(students[i]);
  }
  
  for (String student in students) {
    print(student);
  }
}

>> 영희
>> 철수
>> 민수

이 두가지 예시는 모두 같은 결과가 출력됩니다. 첫번째 예시의 경우 기존 반복문 사용을 응용한 형태를 가집니다. 즉, 인덱스를 활용할 경우 사용하는 것이 좋겠습니다. 두번째 경우는 인덱스를 사용하지 않는 경우 유용하게 사용할 수 있습니다.

profile
자기주도적, 지속 성장하는 모바일앱 개발자가 되기 위해

0개의 댓글