지난 스터디에서 공부해본 변수선언 타입들과는(var, dynamic, String, int) 다른 형태인
List에 대해서 알아보고자 한다. (아래 소스 첨부함)
혹시나..이 글을 읽고 공부를 하고 있다면, 아래 첨부한 소스를 소설책 읽듯이 한줄씩 읽어내려가면서
코드를 실행해보면되고, 이해하면서 넘어가길..
코드 실행도구에 관해서는 Dart언어공부- 01.HelloWorld
위 포스팅을 참조하기 바라며, 내용이 잘 이해되지 않을땐, 아래 포스팅에 소개된
유튜버의 dart강의 재생목록을 참고하기 바란다.
그럼 스터디한 소스 내용 시작.
//07.List 타입
void main() {
//기존에는 1가지 변수에 1가지의 값을 할당하였다면
//이번에 배워볼 List는 여러개의 값을 할당할수 있다고 생각하면 된다.
//단어 뜻 그대로 바라보자.
//List 선언방법 첫번째.
//(var와는 다르게, List는 대문자로 시작한다.)
List colorList = [];
//아무것도 들어있지 않은 List가 표현된다.
print(colorList);
//List 선언방법 두번째.
List colorList2 = new List();
//위와 같은 형태의 결과값이 나온다.
print(colorList2);
//이렇듯 첫번째 선언방법과 두번째 선언방법은 다를게 없다.
//같은 문법이고 똑같이 사용할 수 있으며, 의미도 같다. 단 두번째 선언방법을 선택하면 활용가능성이 더 많아진다.
// 이 부분은 다음 스터디 내용에서 다루자.
colorList.add('red');
colorList.add('blue');
colorList.add('orange');
print('-------------');
//콤마(comma)기준으로 값이 할당되어 나타나는 것을 볼수있다.
print(colorList);
//List Index에 대해 알아보자.
//Index는 순서라고 알면된다.
//일반적으로 사람은 1,2,3...순서지만, 기계는 -1씩뺀다고 생각하자.
//0,1,2,3,4.....순으로 시작한다.
//하지만 갯수는 동일하다. 단순히 부르는 순서만 다를뿐이다.
//이를 Index라 한다. 자리번호정도..?
//실습 start
//blue값을 제거해보자.
colorList.removeAt(1);
print(colorList);
//또한 원하는 각각의 값을 불러오는데에 쓸 수있다.
//자리번호 첫번째의 녀석을 불러올수 있다.
print(colorList[0]);
print(colorList[1]);
//만약 여기서 아래와 같이 세번째(자리번호)를 호출하면 오류가 난다.
//위에서 removeAt을 이용하여 제거했기 때문이다.
//print(colorList[2]);
//또 다른 활용방법으론, 자리번호를 호출하여 해당하는 자리의 값을 변경할 수 있다.
colorList[0] = 'green';
print(colorList);
print('----------devide-----------');
//지금까지 List의 활용에 대해 생성(선언), 추가,제거,변경을 알아보았다.
//이번에는 List응용버전에 대해서 확인해 보자.
//아래와 같이 List에 담길 값들의 타입을 지정하여 선언해 보자.
List<String> colorList3 = [];
colorList3.add('purple');
print(colorList3);
//여기서 아래와 같이 추가를 하였을땐 오류가 발생한다.
//위에서는 지정한 타입인 String을 넣었기 때문에 할당부터 출력까지 문제가 없었으나,
//지정된 타입이 아닌 integer형이 들어왔기 때문이다.
//colorList3.add(1);
//이번에는 길이가 지정되어 있는 List를 선언해보자.
//(add를 이용하면 메모리가 허용하는 한 무제한으로 들어가버림.)
//3개 이상의 값이 할당되지 않도록 3을 넣어서 선언.
List<String> fruit = new List(3);
//아래처럼 호출하게 되면, 숫자를 넣어서 제한하기 전과는 다르게 null이라는 값이 3개가 들어가있다.
print(fruit);
//이유는, 3개의 길이를 가지고 있는 List를 생성하겠다고 지정하였기 때문에
//생성과 동시에 만들어 버린것이다.
//만약 여기서 .add('값'); 을 사용한다면 오류가 발생한다.
//이미 3개만 할당하여 null이란 값이 채워져있기 때문이다.
//이럴땐, index를 활용하여 수정한다.
fruit[0] = 'apple';
fruit[1] = 'banana';
fruit[2] = 'grape';
print(fruit);
print('----------devide-----------');
//이번에는 값을 넣은채로 선언하는 방법을 살펴보자.
List alphabet = ['A','B','C','D','E'];
print(alphabet);
//두번째 선언방법인 new 를 이용하면 어떻게 할까?
//아래와 같이 List.from 을 활용하여 같이 사용할 수 있다.
List alphabet2 = new List.from(['A','B','C','D','E']);
print(alphabet2);
//*tip 길이를 알아볼수 있는방법
print(alphabet2.length);
}
결과 OUTPUT (반드시 코드를 직접 작성해 보면서 결과를 비교하고, 기억할 것.)
[]
[]
-------------
[red, blue, orange]
[red, orange]
red
orange
[green, orange]
----------devide-----------
[purple]
[null, null, null]
[apple, banana, grape]
----------devide-----------
[A, B, C, D, E]
[A, B, C, D, E]
5
이 다음번 스터디 부터는 map에 대해서 알아보고자 한다.
그럼 오늘의 스터디는 여기서 끝.