๋ด๊ฐ ๊ฒ์ค ๊ตฌ์กฐ๋ฅผ ์ด๋ ๊ฒ ์ดํดํ๊ณ ์์๋จ ๋ง์?
๋ฆฌ์คํธ๊ฐ ๋ด๊ธด ๋ฆฌ์คํธ๋ฅผ ํ ๋น ํด์ ํ๋ฉดย
๊ทธ ์์ ํ ๋น๋์ด์๋ ๋ฆฌ์คํธ๋ค์ ๋ ํผ๋ฐ์ค ์์ด๋๊ฐ ๋ค ๋ ์๊ฐ์ย
์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ด๋ฆฌ๋ค์ด ์๊ธด๋ค๊ณ
๊ฒ์ค๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ์์ผ๋ ์ด๊ฑธ ํด์ ํด์ค์๋ ์๊ณ ๋ฐฉ์นํด๋ฌ์ผ ํ๊ธฐ ๋๋ฌธ์ย
๊ตฌ์กฐ์ฒด๋ฅผ ์ฐ๊ณ ๋๋ฉด ๊ผญ ํด์ ๋ฅผ ํด์ค์ผ ํ๋๊ฑธ๋ก์๋๋ฐ
๊ฐ์๊ณผ์ ๊ฒ์ค์ฐ๋ ์น๊ตฌ๊ฐ ListA๋ฅผ ํด์ ํ๋ฉด ๊ทธ ์์ ์๋ ListB,C,D๋ ๋ค ํด์ ๊ฐ ๋๋ค๊ณ ํ๋๋ฐ
๋ญ๊ฐ ๋ง๋๊ฑฐ์??
๊ฒ์ค๋ VS ๋๋ฒ๊น ์ง์ ์ํ๋? ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ฐ์์ ๋ณด๋ฉด ๋ฐ๋ก ๋์ฌํ ๋ฐ
๋ด๊ฐ ์๊ธฐ๋ก ์์ GMS2๋ ์๋๊ฑฐ ๊ฐ๋๋ฐ
๊ฒ์ค 1์ ๋๋ฒ๊ทธ ๋ชจ๋ ๋กํ๋ ์๋๋ฐ ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ์นดํ์ข ๊ฐ๋ด ๊ฒ์๋ง ํด๋ ๋์ด
๋งต์์ ๋ฆฌ์คํธ๋ ๋งตid ๋ฃ์๋ ds_map_add_list(map, "listA", listA); ์ด๋ ๊ฒ ๋ฃ์ผ๋ฉด map๋ง ํด์ ํด๋ ๊ทธ์์ ๊ตฌ์กฐ์ฒด๋ ์์์ ํด์ ๋จ
์ด์ ์ค๋๋ผ์ ๊ฐ๋ฌผ๊ฐ๋ฎฌํ๋ฐ ๊ฒ์ค๊ฐ ๊ฐ๋น์ง์ปฌ๋ ํฐ๊ฐ ์ด์ ์๋ ๊ฑด ์๋์ผ. ์ผ๋ฐ ์ธ์คํด์ค๋ ์ฐธ์กฐ ์์ด์ง๋ฉด ์๋ํด์ ๋์์. ๋ค๋ง ds ์๋ฆฌ์ฆ๊ฐ ๊ฐ๋น์ง์ปฌ๋ ํฐ๊ฐ ์์ด์ ์๋ํด์ ๋ฅผ ํด์ค์ผ ํ๋ ๊ฑธ๋ก ์๊ณ ์์. ๊ธ๊ณ ๋ณธ๋ฌธ ๋ด์ฉ์ฒ๋ผ ๋ฆฌ์คํธ ์์ ๋ฆฌ์คํธ๋ฅผ ์๋ํด์ ํด์ผํ๋ ๊ฑด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋๋ฐ
๋ฆฌ์คํธ์ ๊ทธ๋ฅ๋ฃ์ด๋ ๊ฐ์ด ํด์ ๋๋๊ฑธ๋ก์๋๋ฐ ํ์คํ์ง์์
ds_list_mark_as_list๋ก flag ํ์๋ฅผ ํด์ค์ผ ๊ฐ์ด ํด์ ํด์ค๋ฐ
ds_list_mark_as_list ๊ฐ์ ๊ฑธ ์จ์ ๋ฆฌ์คํธ์์ ๋ ๊ฒ ๋ฆฌ์คํธ๋ผ๊ณ ๋ช ์ํด์ฃผ๋ฉด ๋ถ๋ชจ๋ฆฌ์คํธ ์ญ์ ํ ๋ ์์ ๋ฆฌ์คํธ๋ก ์๋์ผ๋ก ์ญ์ ํด์ฃผ๋ ๊ฒ ๊ฐ๋๋ผ
๊ทธ๋ฌ๋ค ์์ ํฌํ ์ณ๋ณด๋๊น NOTE: Once a ds_list has had a value within it flagged as another list or map, destroying the list will also destroy the marked lists and maps too ๋ผ๊ณ ํ๋ค
๊ทผ๋ฐ ์๊ฐํด๋ณด๋๊น ds_list_mark_as_list ๋ pos๋ง๋ค ์ ๋ถ ๋งํฌ ํด์ค์ผ ์๋ํ๋๊ฑธ๋ก ๋ณด์ด๋๋ฐ for๋ฌธ์ผ๋ก ์๋ ํด์ ํ๋๊ฑฐ๋ ๋ญ์ฐจ์ด์ง? ์๊ฐ๋ณต์ก๋๋ ๋์ผํ์ง ์๋
์ฐธ์กฐ์ ๋ป์ข ์๊ฐํด๋ณด์ list_create๋ก ๋ณ์ ์ ์ธํด๋ ๊ทธ ๊ฐ์ด ์๋ง 0, 1, 2, 3 ์ผํ ๋ฐ ์ด๊ฒ ์ฐธ์กฐ ๊ฐ์ ๊ตฌ์กฐ์ฒด ๋ฟ๋ง ์๋๋ผ ๋ฒํผ, ์คํ๋ผ์ดํธ๋ ์ด๋ฐ ๊ฐ๋ ๊ทธ๋ฌ๋๊น ์์ ์๋ ๊ฒ๋ ์๋ฌด ์๊ด ์์ด ์ ๊ฑฐ๋จ
๊ฒ์ค ๋๋ฒ๊ทธ๋ชจ๋๋ vs ๋๋ฒ๊น ์ง์ ์ํ๊ณ ๋ฆฌ์คํธ ์ ์ธํ ๋ฐ๋ก ํ๋๊ทธ ํด์ฃผ์ง ์์ผ๋ฉด ์์ ์๋๊ฒ๋ค ์ ๊ฑฐ ์๋๊ณ ๋จ์ ๋ฐ๋ก ์์ ์์ฐ๋งจ์ด ์ ์ค๋ช ํด๋จ์