· [중급자를 위한 유니티 스크립팅 튜토리얼] - Static
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 제네릭(Generic)
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 상속
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 다형성
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 인터페이스
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 확장 메서드
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 네임스페이스
· [중급자를 위한 유니티 스크립팅 튜토리얼] - 리스트
이 시리즈는 유니티에서 제공하는 튜토리얼을 정리해서 올린 것입니다.
-----------------------------------------------------------------------------------
딕셔너리
딕셔너리(사전)는 리스트와 비슷하게 작동하지만 하나의 요소가 두 가지 타입을 갖는다.
즉 각 요소가 키-값 쌍을 이룬다.
딕셔너리와 리스트는 용도에서 차이점을 보이는데
리스트가 배열보다 좀 더 많은 기능이나 유연성이 필요할 때 사용되는 반면
딕셔너리는 하나 이상의 키로 접근할 수 있는 값들의 컬렉션을 구하기 위해 사용된다.
쉽게말해 리스트는 강화된 배열, 딕셔너리는 조건에 맞는 요소(들)을 빠르게 찾아내기 위한 배열이다
-----------------------------------------------------------------------------------
딕셔너리의 사용
딕셔너리의 사용은 리스트와 비슷하다
먼저 System.Collections.Generic 네임스페이스를 using해준다.
이후 딕셔너리를 선언한다.
이 때 두 가지 제네릭 타입을 명시하는데 첫 번째 제네릭 타입은 "키"이며 키는
두 번째 제네릭 타입인 "값"에 접근하기 위해 참조되는 타입이다.
위 코드에서 우리는 키로 string을 값으로 VillainClass를 타입으로 설정해주었다.
리스트와 마찬가지로 Add(); 메서드를 통해 딕셔너리의 마지막에 요소를 추가해줄 수 있다.
요소를 추가할땐 키와 값을 모두 지정해주어야 한다.
여기선 빌런들의 출신을 키로 해당 빌런이 갖는 클래스를 값으로 설정했다.
한 가지 주의할 점은 딕셔너리 내에 키는 단 하나만 존재할 수 있다는 것이다.
에디터에서 중복된 키를 사용해도 오류가 나지 않지만
유니티 실행 버튼을 누르면 시뻘건 오류 메시지를 확인할 수 있을 것이다.
키를 통한 딕셔너리의 값을 찾고 싶다면 딕셔너리의 이름 뒤에 ["keyname"]을 입력해주면 된다.
리스트가 인덱스, 즉 숫자를 통해 요소에 접근하는 것과는 다르다.
출신지가 ???인 값의 name 필드를 출력해보면
정상적으로 Joker가 뜨는 모습을 확인할 수 있다.
-----------------------------------------------------------------------------------
키를 이용해 값에 접근할때 해당 키가 존재하지 않으면 오류가 발생한다.
하지만 딕셔너리의 규모가 크다면 프로그래머가 모든 키를 외우지 못할 것이다.
그럴때는 TryGetValue() 메서드를 활용하자.
trygetvalue() 메서드는 bool 값을 반환하는 메서드다
만약 첫번째 매개변수로 전달된 키가 딕셔너리 내에 존재하면 true 값을 반환하고 그 키와 쌍을 이루는 값을
temp매개변수에 참조로 전달한다
그렇지 않다면 false값을 반환한다.
이는 키가 존재하는지 확신하지 못할때 유용하다.
trygetvalue() 메서드는 키를 직접참조하는 것보다 약간 느리다
그렇기 때문에 trygetvalue메서드를 남용하지말고
확실하게 키가 존재하는지 알고있을때는 직접 키를 참조하는 게 성능면에서 더 좋다.
-----------------------------------------------------------------------------------
리스트와 마찬가지로 수많은 딕셔너리 메서드, 프로퍼티가 존재하니 따로 더 알아보는것이 좋다.
시간복잡도 1따리 goat 캐싱전용 자료구조
ㄹㅇㅋㅋ - dc App