-
[Swift] - Subscripts (μλΈμ€ν¬λ¦½νΈ)iOS/π Swift 2021. 2. 19. 17:21
ν΄λμ€, ꡬ쑰체, μ΄κ±°νμ μλΈμ€ν¬λ¦½νΈλ₯Ό μ μν μ μμ΅λλ€.
μλΈμ€ν¬λ¦½νΈλ collection, list, sequence μ λ©€λ²μ λΉ λ₯΄κ² μ κ·Όν μ μλ μλ¨μ λλ€.
μλΈμ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ©΄ μΈλ±μ€λ₯Ό μ΄μ©ν΄μ κ°μ μ κ·Όν΄μ κ°μ λ°κΎΈκ±°λ κ²μν μ μμ΅λλ€.
setter λ κ° κ²μ λ©μλμ ꡬνμ΄ νμ μκ² λ©λλ€.
μλ₯Ό λ€μ΄, λ°°μ΄μ someArray[index] μ κ°μ΄ μλΈμ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν΄ κ°μ μ κ·Όνκ³ λ°κΏ μ μμ΅λλ€.
νλμ νμ μ μ¬λ¬κ°μ μλΈμ€ν¬λ¦½νΈλ₯Ό μ μν μ μμ΅λλ€.
μ¦, νλΌλ―Έν°μ νμ μΌλ‘ ꡬλΆλλ μ€λ²λ‘λ©μ΄ κ°λ₯ν©λλ€.
μλΈμ€ν¬λ¦½νΈλ 1μ°¨μμ μ νλμ§ μκ³ , μ¬λ¬ κ°μ νλΌλ―Έν°λ₯Ό λ°μμ 컀μ€ν νμ μ λ§κ² μ μν μ μμ΅λλ€.
Subscript Syntax
μλΈμ€ν¬λ¦½νΈλ μΈμ€ν΄μ€λͺ λ€μ λκ΄νΈ ( ' [ ] ' ) λ₯Ό μ κ³ , κ·Έ μμ ν κ° μ΄μμ κ°μ λ£μ΄μ μΈμ€ν΄μ€μ μμ²μ μ λ¬ν©λλ€.
λκ΄νΈ: square brackets
λ¬Έλ²μ μΈμ€ν΄μ€ λ©μλ μ κ³μ° μμ± μ λ¬Έλ²κ³Ό μ μ¬ν©λλ€.
μΈμ€ν΄μ€ λ©μλμλ λ¬λ¦¬, μλΈμ€ν¬λ¦½νΈλ 1. μ½κ³ μ°κΈ° κ°λ₯ νΉμ 2. μ½κΈ° κ°λ₯ μ΅μ λ§ κ°λ₯ν©λλ€.
μ΄ λΆλΆμ κ³μ°μμ±μ΄ getter μ setterλ₯Ό μ€μ ν μ μλ μ΅μ κ³Ό κ°μ΅λλ€.
λΈλ‘ λ΄λΆλ κ³μ° μμ± λ¬Έλ² κ³Ό μμ ν λμΌν©λλ€.
subscript(index: Int) -> Int { get { // Return an appropriate subscript value here. } set(newValue) { // Perform a suitable setting action here. } }
Subscript Usage
μλ₯Ό λ€μ΄, Swift μ λμ λ리 νμ μ ' key 'λ₯Ό μ λ¬ λ°μΌλ©΄ μ΅μ λ νμ μ ' value ' λ₯Ό λ°νν©λλ€.
λμ λ리 μΈμ€ν΄μ€λ 0κ° μ΄μμ 'key-value' μμ κ°μ§κ³ μμ΅λλ€.
μ λ¬ν key μ λμ λ리 μΈμ€ν΄μ€μ μ‘΄μ¬νμ§ μμ λ, ' nil ' μ λ°ννκΈ° μν¨μ λλ€.
var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4] numberOfLegs["bird"] = 2
Type Subscripts
νμ μλ μλΈμ€ν¬λ¦½νΈλ₯Ό μ μν μμμ΅λλ€.
μ΄κ²μ 'Type Subscripts' λΌκ³ λΆλ¦ λλ€.
μμ 'static' ν€μλλ₯Ό λΆνλ©΄ λ©λλ€.
ν΄λμ€μ κ²½μ° μμ ν μ¬μ μ ( override ) λ₯Ό νμ©νλ €λ©΄ 'class' ν€μλλ₯Ό λΆνλλ€.
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)
λ!
π€π’[μ°μ§±μ iOS λΈλ‘κ·Έ]π΅π»
iOSλ₯Ό 곡λΆνλ©΄μ λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ μμ΅λλ€.'iOS > π Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] Enumeration μ΄μ 리 (0) 2021.03.10 [Swift] - Autoclosuresλ? (0) 2021.03.02 Access Control (μ κ·Ό μ μ΄) (0) 2021.02.17 Computed Properties (κ³μ° μμ±) - Properties (0) 2021.02.02 Adopting a Protocol Using a Synthesized Implementation - Protocols (0) 2021.01.27