Advanced Classroom
2013.09.17 09:42

나뚜루's - 배열, 이렇게도 만들 수 있다.

Views 2333 Votes 0 Comment 2
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Update Delete
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Update Delete
흔히 배열을 만들때는 이렇게 하죠.

array = []
ary = [1, 2, 3, 10]

하지만 배열도 일종의 클래스라서, 이렇게 만들 수 있습니다.

array = Array.new

그런데 그냥 이렇게만 만들 수 있는걸까요?
절대 아닙니다. Array 클래스의 initialize 함수에는 놀라운 사실이 숨어있습니다.

ary = Array.new(1, 10)

이게 뭘까요? 잘 이해가 안가실겁니다.

p ary # => [10]

[10]이라는 배열이 작성되었네요!
그렇다면 이렇게 하면 어떻게 될까요?

ary = Array.new(3, 5)
p ary # => [5, 5, 5]

이제 이해하셨을겁니다.

array = Array.new(갯수, 값)

이렇게 만드시면 갯수만큼 값이 배열 안에 들어가게됩니다. (값은 모두 똑같습니다.)
이것은 for 루프를 없애주기 때문에 똑같은 값을 여러번 만들 때는 정말 유용한 방법입니다.
하지만 결정적인 단점이 있죠. 모두 똑같은 값이기 때문에 하나를 변경하면 모두 변경됩니다.
예제를 보여드리겠습니다.

ary = Array.new(3, 'A')
ary[0] += '2'
p ary # => ['A2', 'A2', 'A2']

하지만 숫자는 다릅니다.

ary = Array(Array.new(3, 1)
ary[0] += 10
p ary # => [11, 1, 1]

숫자는 사칙연산을 하면 또다른 값을 만들어 돌려주기 때문에 이런 일이 일어나지 않습니다.
비록 복제하지 않으면 숫자에서만 가능하다는 점이 있지만, 그래도 알아두면 유용하지 않을까요?
?

List of Articles
No. Category Subject Author Date Views Votes
Notice Beginner Classroom 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 8178 1
191 Intermediate Classroom 캐릭터레이더로 통맵만들기. 3 file 천무 2006.06.05 12555 23
190 Intermediate Classroom 액알강의[3] - 주석을 통한 설정 1 file 비밀소년 2006.07.21 5506 4
189 Intermediate Classroom 액알강의[2] - 일어서기위해 비밀소년 2006.07.30 5375 3
188 Intermediate Classroom 액알강의[1] - 베틀러 비밀소년 2006.08.07 8678 7
187 Beginner Classroom 찰드 제작강의 "1" -겜제작을 시작할때- 5 ◈ÐÆЯΚ◈찰드 2008.08.28 7142 5
186 Beginner Classroom 찰드 제작강의 "2" -툴을 처음 접하면- 4 ◈ÐÆЯΚ◈찰드 2008.09.29 6205 7
185 Intermediate Classroom 찰드 도트강의 "1" -케릭터 레이더의 이해 (1/2)- 6 ◈ÐÆЯΚ◈찰드 2009.08.16 6404 4
184 Intermediate Classroom [RPG2003] 한단계 도약 : 되풀이 처리 3 A. 미스릴 2011.02.21 2940 1
183 Intermediate Classroom [RPG2003] 한단계 도약 : 변수 번호의 스위치 6 A. 미스릴 2011.02.21 2712 0
182 Intermediate Classroom [RPG2003] 한단계 도약 : 변수 번호의 변수 A. 미스릴 2011.02.22 2816 0
181 Intermediate Classroom 찰드 제작강의 "3" -툴의 완벽한 이해를 위한 그날까지 No.1 1 1 file 찰드 2011.09.02 3242 1
180 Intermediate Classroom 데스티니 패치 연구 1~3 2 1 file 나라뜨 2012.05.05 1323 0
179 Beginner Classroom [RPG VX ACE] 초심자강의 1 1 비형랑 2012.10.01 3332 2
178 Intermediate Classroom [RPGVX ACE] 소재규격과 강의수록 1 2 비형랑 2012.10.01 3412 0
177 Advanced Classroom RGSS2 강좌 1 비형랑 2012.10.01 2682 0
176 Advanced Classroom 뮤's 실전 스크립팅 강좌 [1. 기초 문법 다지기 (상)] 6 마니아 2013.09.16 2564 0
175 Advanced Classroom 뮤's 실전 스크립팅 강좌 [2. 기초 문법 다지기 (중)] 3 마니아 2013.09.16 1578 0
174 Advanced Classroom 뮤's 실전 스크립팅 강좌 [3. 기초 문법 다지기 (하)] 6 마니아 2013.09.16 1376 0
173 Advanced Classroom 뮤's 실전 스크립팅 강좌 [4. 실전! 플래싱 메시지를 만들어보자] 3 마니아 2013.09.16 2269 0
172 Advanced Classroom 뮤's 실전 스크립팅 강좌 [5. 실전! 반복문을 응용하자!] 2 마니아 2013.09.16 1558 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)