조회 수 1650 추천 수 1 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
배열의 확장된 형태인 연상배열을 배워봅시다.

1. hash

해시, 혹은 연상배열이라고 부릅니다. 
연상배열은 { } 이 괄호안에 나열하는것으로 만듭니다.
배열과의 차이라고한다면 배열에서는 배열변수 [ 첨자 ] 의 형태로 값을 꺼냈다면 연상배열에서는 첨자대신에 하나의 키를 사용합니다.
키와 값을 만들때는 ' 키 => 값 ' 의 방식으로 만들어야 합니다.
예를 봅시다. 

a = {"네이버" => "na" , "야후" => 10 , 100 => "파란"  }

p a ["네이버"]        # "na"
p a ["야후"]            # 10
p a [100]                 # "파란"
p a ["라이코스"]   # nil 

배열과는 첨자가 키로 바뀐게 다릅니다. 
키에는 캐릭터라인 말고도 수치등도 됩니다.

2. 연상배열에 값추가

실제로 해시는 직접 데이터를 지정해 만들어 두는것보다는 공백의 해시를 만들어두고 데이터를 넣는쪽으로 많이 사용합니다. 
게임상에서는 변수이름을 정한다거나 등이 비슷한 예제일수도 있겠습니다.
연상배열에 값을 추가하는 방법은 배열과 같습니다.

a = {}

a["네이버 "] = "na"

p a                                    #  { " 네이버 " =>" na" }


3. 연상배열의 조작

연상배열은 hash 클래스의 오브젝트입니다. 배열과 같이 hash 클래스로 정의되어있는 메서드를 호출할수있습니다.
예를 들어 연상배열안의 값을 삭제하는경우에 delete 메서드를 사용합니다.

a = {"네이버" => "na" , "야후" => 10 , 100 => "파란"  }

a.delete("네이버")

p a                                  #  { "야후" => 10 , 100 => "파란" }


특정키가 있을지 없을지를 알아볼때는 배열에서 사용했던것과 같은 include? 메서드를 사용합니다.

a = {"네이버" => "na" , "야후" => 10 , 100 => "파란"  }

p a . include? ("네이버")           # true
p a . include? ("라이코스")       # false

배열때와 같이 a 에 정의 되어있지않은 키는 false 로 표시됩니다.

4. 연상배열의 루프

hash 클래스에는 키의 일람을 배열로 출력해주는 keys 메서드가 있습니다.

a = {3=>6, 4=>10, 5=>15}
p a.keys            # => [5, 3, 4]

키의 명단이 배열로 출력됩니다. 연상배열에는 순서가 없기때문에 순서는 무작위입니다.
바로 이전 강좌에서 배열을 for 루프로 돌리는방법을 배웠습니다. 이것을 이용해서 연상배열도 for 루프로 돌릴수있겠지요.

a = {3=>6, 4=>10, 5=>15}

for i in a.keys
  p i
end

실행하면 3,4,5가 순서없이 표시됩니다.

values 메서드를 이용하면 키가 아닌 값의 명단을 배열로 취득할수있습니다.

a = {3=>6, 4=>10, 5=>15}

for i in a.values
  p i 
end

실행하면 6, 10, 15 가 순서없이 표시됩니다.
?

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7877 Votes1
    read more
  2. [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법

    Date2017.07.16 Category고급강의실 By러닝은빛 Views3874 Votes2
    Read More
  3. [MV플러그인] Armor Scaling 강의

    Date2016.02.13 Category고급강의실 By백난화백 Views3688 Votes2
    Read More
  4. [MV플러그인] Action Sequence 강의

    Date2016.02.12 Category고급강의실 By백난화백 Views5772 Votes1
    Read More
  5. [동영상] 스크립트 나도좀 잘해보자 -1-

    Date2016.02.04 Category고급강의실 By천무 Views1791 Votes1
    Read More
  6. PIXI Filter 총정리 (PIXI 2.2.9)

    Date2016.01.18 Category고급강의실 By러닝은빛 Views18771 Votes3
    Read More
  7. [RGSS2 강좌] 기초편 2. 변수와 상수

    Date2016.01.10 Category고급강의실 By천무 Views697 Votes0
    Read More
  8. [RGSS2 강좌] 기초편 1. 소개

    Date2016.01.10 Category고급강의실 By천무 Views1110 Votes0
    Read More
  9. Rpg Maker MV 함수 리스트(공식포럼)

    Date2016.01.10 Category고급강의실 Byplam Views1473 Votes1
    Read More
  10. 타이틀에 동영상을 넣는 플러그인 사용법

    Date2016.01.08 Category고급강의실 By러닝은빛 Views2768 Votes1
    Read More
  11. RPG Maker MV 메모리 누수 문제 해결법

    Date2016.01.07 Category고급강의실 By러닝은빛 Views4914 Votes1
    Read More
  12. XP to MV 컨버터 사용법

    Date2015.12.28 Category고급강의실 By러닝은빛 Views2926 Votes0
    Read More
  13. 기본 게임 폰트를 다른 폰트로 바꾸기

    Date2015.12.21 Category고급강의실 By러닝은빛 Views7675 Votes0
    Read More
  14. 처음부터 전체화면으로 시작하기

    Date2015.12.21 Category고급강의실 By러닝은빛 Views4479 Votes0
    Read More
  15. [RPG MV] 타이틀 메뉴 일부 없애기

    Date2015.12.20 Category고급강의실 By박야옹 Views3952 Votes1
    Read More
  16. [RPGMV Plugin 영상] 무작정 해보기 "Gameus' Quest System"

    Date2015.12.20 Category고급강의실 By천무 Views1944 Votes0
    Read More
  17. [RPGMV Plugin 영상] 무작정 해보기 "심플ATB"

    Date2015.12.20 Category고급강의실 By천무 Views1230 Votes0
    Read More
  18. VX Ace to MV 컨버터 사용법 ( .rvdata2 → .json )

    Date2015.12.14 Category고급강의실 By러닝은빛 Views7495 Votes0
    Read More
  19. [RPGMV Plugin 영상] 한국어 조사처리, 해상도변경 플러그인!!

    Date2015.12.12 Category고급강의실 By천무 Views1498 Votes0
    Read More
  20. [소공지] 플러그인 무작정 해드린다 진행해봅니다.

    Date2015.12.09 Category고급강의실 By천무 Views733 Votes0
    Read More
  21. [RPGMV Plugin 영상] 한글이름 입력, 전투속도증가 플러그인!!

    Date2015.12.09 Category고급강의실 By천무 Views2056 Votes0
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)