閲覧数 1844 推奨数 1 コメント 4
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷 修正 削除
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷 修正 削除
배열의 확장된 형태인 연상배열을 배워봅시다.

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 가 순서없이 표시됩니다.
?

List of Articles
番号 カテゴリ タイトル 投稿者 日付 閲覧数 推奨数
お知らせ 初心者教室 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 8178 1
191 初心者教室 [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에. 케이디 2018.09.10 2889 0
190 初心者教室 RPG Maker MV에서 도트 느낌의 폰트 사용하기 1 file 러닝은빛 2018.07.15 5121 1
189 初心者教室 [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! " file 수성의물 2018.07.01 2037 0
188 初心者教室 [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약 file 이니군 2018.04.25 1035 0
187 初心者教室 [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠 file 이니군 2018.04.25 1027 0
186 初心者教室 [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기 1 file 이니군 2018.04.24 2360 1
185 初心者教室 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정. file 약빨은ㄱㅏㅅㅣ 2017.11.28 1743 0
184 初心者教室 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용) 약빨은ㄱㅏㅅㅣ 2017.11.28 1555 0
183 初心者教室 [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인) file 이니군 2017.09.11 1474 0
182 初心者教室 RPG MAKER MV Tool Program-MADO 설치 및 적용기 1 file 이니군 2017.09.08 2654 0
181 初心者教室 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정) 3 file 이니군 2017.08.28 1849 0
180 高度な教室 [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법 1 러닝은빛 2017.07.16 4051 2
179 中級教室 네코플에서 VXA 선택지 잘리는 버그 해결하는법 file 심심치 2017.06.22 1284 2
178 初心者教室 변수를 이용한 식물 재배 3 file MoonJ 2017.05.28 3553 2
177 初心者教室 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기! 4 file 이제리아 2017.01.26 4712 3
176 中級教室 RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2561 0
175 中級教室 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편 22 file 양갱님 2016.04.17 36565 10
174 初心者教室 게임의 퀼리티를 높이자! 3편-맵배치 2 ifeve 2016.04.08 5542 2
173 初心者教室 Input 객체의 키코드 확장 8 file 러닝은빛 2016.04.05 1664 0
172 初心者教室 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6504 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10