arr[index]
, dict[key]
์ ๊ฐ์ ๋ฌธ๋ฒ์ผ๋ก ์ธ์คํด์ค ์์ ์์์ ์ ๊ทผํ๋ ๊ฒ.
computed property ์ ์ ์ฌ
supscript(index: Int) -> Int {
get {
// subscript ์ ๋ํ ๊ฐ์ return
}
set(newValue) {
// set
// ๊ธฐ๋ณธ์ ์ผ๋ก newValue ๋ผ๋ ์ธ์๊ฐ ์ ๊ณต๋๋ฉฐ,
// ์๋ธ์คํฌ๋ฆฝํธ์ ๋ฐํ ๊ฐ๊ณผ ๋์ผํ๋ค.
// set ์ ์์ ์ ์์.
}
}
struct TimesTable {
let multiplier: Int
subscript(index: Int) -> Int {
return multiplier * index
}
}
let threeTimesTable = TimesTable(multiplier: 3)
print("six times three is \(threeTimesTable[6])")
// Prints "six times three is 18"
dict[key] = nil
๋ก ํ ๋น์ ํด์ ํ ์ ์๊ฒ ํด์ฃผ๊ธฐ ์ํด์์ด๋ค.์ ๋ ฅ ํ๋ผ๋ฏธํฐ
๋ฐํ๋ ์ญ์ ์ด๋ค ํ์ ์ด๋ ๊ฐ๋ฅ.
์ค๋ฒ๋ก๋ฉ ( ์ธ์ํ, ๋ฐํํ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ทจ๊ธ๋จ. == ๋ง์๋๋ก ์ธ์์ ๋ฐํ๊ฐ์ ๋ฃ์ด์ ๊ตฌํ ) ๊ฐ๋ฅ.
struct Matrix {
let rows: Int, columns: Int
var grid: [Double]
init(rows: Int, columns: Int) {
self.rows = rows
self.columns = columns
grid = Array(repeating: 0.0, count: rows * columns)
}
func indexIsValid(row: Int, column: Int) -> Bool {
return row >= 0 && row < rows && column >= 0 && column < columns
}
subscript(row: Int, column: Int) -> Double {
get {
assert(indexIsValid(row: row, column: column), "Index out of range")
return grid[(row * columns) + column]
}
set {
assert(indexIsValid(row: row, column: column), "Index out of range")
grid[(row * columns) + column] = newValue
}
}
}
์ด๋ฐ์์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ.
grid[0, 1] // 0ํ 1์ด
enum Planet: Int {
case mercury = 1, venus, earth, mars, jupiter, saturn, uranus, neptune
static subscript(n: Int) -> Planet {
return Planet(rawValue: n)!
}
}
let mars = Planet[4]
print(mars) // 4
arr[1]
๊ณผ ๊ฐ์ ์ฝ๋ ์
ํ์
์ ๋ฌธ๋ฒ์ผ๋ก enum, struct, class ์ ์ธ์คํด์ค ๋ด ์์์ ์ฝ๊ฒ ์ ๊ทผํ๊ณ ์์ ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฌธ๋ฒ์ด๋ค.Why..?
๊ทธ๋ผ ์ฝํ
๋ ์ด๋ป๊ฒ ๋ณด๋์.. Index์ ์ต์ํด์ ธ์ผ ํ๋..? ์ฌ์ค ํ์ด์ฌ์ผ๋ก ๋ณผ๊ฑฐ์
O(n)
์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ฝํ
ํ๊ธฐ์ ๋ถ์ ํฉ.Array(str)
๋ก Character ํ์
์ ๋ฐฐ์ด๋ก ๋ณํํด์ ์ฌ์ฉํ์!!!์ถ์ฒ
https://bbiguduk.gitbook.io/swift/language-guide-1/initialization
https://jcsoohwancho.github.io/2019-11-19-Swift-String-ํจ์จ์ ์ผ๋ก-์ฐ๊ธฐ/