ํด๋์ค, ๊ตฌ์กฐ์ฒด ๊ทธ๋ฆฌ๊ณ ์ด๊ฑฐํ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํด ์ฌ์ฉํ ์ ์๋ค. ์๋ธ์คํฌ๋ฆฝํธ๋ ์ฝ๋ ์ , ๋ฆฌ์คํธ, ์ํ์ค ๋ฑ ์งํฉ์ ํน์ ๋ฉค๋ฒ ์์์ ๊ฐ๋จํ๊ฒ ์ ๊ทผํ ์ ์๋ ๋ฌธ๋ฒ์ด๋ค. ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ๋ฉด ์ถ๊ฐ์ ์ธ ๋ฉ์๋ ์์ด ํน์ ๊ฐ์ ํ ๋น(assign)ํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์(retrieve) ์๋ค. ์๋ฅผ๋ค๋ฉด, ๋ฐฐ์ด(Array) ์ธ์คํด์ค์ ํน์ ์๋ฆฌ๋จผํธ๋ someArray[index]๋ฌธ๋ฒ์ผ๋ก, ์ฌ์ (Dictionary) ์ธ์คํด์ค์ ํน์ ์๋ฆฌ๋จผํธ๋ someDictionary[key]๋ก ์ ๊ทผํ ์ ์๋ค. ํ๋์ ํ์ ์ ์ฌ๋ฌ ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํ ์ ์๊ณ ์ค๋ฒ๋ก๋(Overload)๋ ๊ฐ๋ฅํ๋ค. ๋ฟ๋ง์๋๋ผ ๋จ์ผ ์ธ์ ๊ฐ์ ๋์ด, ํ์ ๋ฐ๋ผ ๋ณต์ ์ธ์ ๊ฐ์ ์ฌ์ฉํ ์ ์๋ค.
์๋ธ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ (Subscript Syntax)
์๋ธ์คํฌ๋ฆฝํธ ์ ์ธ ๋ฌธ๋ฒ์ ์ธ์คํด์ค ๋ฉ์๋์ ๊ณ์ฐ๋ ํ๋กํผํฐ๋ฅผ ์ ์ธํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค. ์ธ์คํด์ค ๋ฉ์๋์ ๋ค๋ฅธ ์ ์, ์๋ธ์คํฌ๋ฆฝํธ๋ ์ฝ๊ณ -์ฐ๊ธฐ(read-write) ํน์ ์ฝ๊ธฐ ์ ์ฉ(read only)๋ง ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค. ์ ์๋ ๊ณ์ฐ๋ ํ๋กํผํฐ ๋ฐฉ์๊ณผ ๊ฐ์ด setter, getter ๋ฐฉ์์ ๋ฐ๋ฅธ๋ค.
subscript(index: Int) -> Int {
get {
// ์ ์ ํ ๋ฐํ ๊ฐ
}
set(newValue) {
// ์ ์ ํ set ์ก์
}
}
์๋ธ์คํฌ๋ฆฝํธ ์ฌ์ฉ (Subscript Usage)
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
numberOfLegs๊ฐ์ ํ์ ์ถ๋ก ์ ์ํด [String: Int]ํ์ ๊ฐ๋๋ค. numberOfLegs["bird"] = 2๋ ์ฌ์ ํ ๋ณ์ numberOfLegs์ key๋ก bird๋ฅผ ๊ทธ ๊ฐ์ 2๋ฅผ ๋ฃ์ผ๋ผ๋ ์๋ธ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ด๋ค.
NOTEโ๏ธ
๋์ ๋๋ฆฌ์ ๋ฐํ ๊ฐ์ ์ต์ ๋์ด๋ค. ๊ทธ ์ด์ ๋ ์ฌ์ ์ ํน์ ํค ๊ฐ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์๊ณ , ํน์ ํค ๊ฐ์ nil๋ก ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
'๐ฆ Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Initialization (0) | 2022.07.13 |
---|---|
Inheritance (0) | 2022.07.05 |
Methods (0) | 2022.07.04 |
Properties (0) | 2022.07.04 |
Structures and Classes (0) | 2022.06.22 |