ν°μ€ν 리 λ·°
μλ νμΈμ?
λꡬ리μ λλ€~~γ γ
μ€λμ μ λ² ν¬μ€ν μ μ΄μ΄ νλ‘ν μ½μ λ©μλ μꡬμ¬νμ λν΄
μμλ³ΌκΉ ν©λλ€γ γ
λ©μλ μꡬμ¬ν
μ λ² ν¬μ€ν μμ νλ‘ν μ½μ μ μν λ κΈ°λ₯ ꡬνμ
μνλ€κ³ νμμ£ ?
κ·Έλμ νλ‘ν μ½ μ μμμ λ©μλλ μ€κ΄νΈλ λ°λκ° μμ΅λλ€!!!
κ·Έλ¦¬κ³ λ§μ½ νμ λ©μλλ₯Ό μꡬμ¬νμΌλ‘ λ£μκ²½μ°
func μμ staticλ§ μ¬λ €μ£Όλ©΄ λ©λλ€!γ γ
κ·ΈλΌ κ°λ¨ν μ μλ§ ν΄λ³Όκ²μ~~
protocol SomeProtocol {
func someMethod()
static func someTypeMethod()
}
μ μλ μ°Έ μ½μ£ ?γ γ
μ¬κΈ°μ νλ μ§κ³ λμ΄κ°μΌν κ² μλλ°μ
μ°λ¦¬κ° ν¨μμμ λ§€κ°λ³μκ°μλ ν¨μλ₯Ό μ μν μ μκ³ μ΄ λ³μμ μ΄κΈ°κ°μ μ€ μ μμμμ?
νμ§λ§ νλ‘ν μ½μ μ΄κΈ° μ€μ μ ν μ μλλ°
νλ‘ν μ½ λ΄μ λ©μλμ μ΄κΈ°κ°μ κ°μ§λ λ§€κ°λ³μ μꡬμ¬νμ μ€λ€λ©΄ μ΄λ»κ² λ κΉμ?(κΆκΈκΆκΈ..)

νλ‘ν μ½μμ λ©μλλ λ§€κ°λ³μ μ΄κΈ°κ°μ μ€ μ μλ€λ μλ¬κ° λμ€λ€μ!!
μ΄κΈ°κ°μ μ§μ°λ©΄ μ !!μ!!μ½!!λ!!

(νΈ.μ~)
μ΄μ΄μ νλ‘ν μ½ λ©μλλ₯Ό νλ² μ¬μ©ν΄λ³΄λ €κ³ νλλ°μ
μ¬κ°νμ λμ΄λ₯Ό μΆλ ₯ν΄μ£Όλ λ©μλλ₯Ό μ£Όλ €κ³ ν©λλ€!
μ½λλ‘ ν¨κ» 보μμ£ ~
protocol RectangleArea {
func getArea() -> Int
}
struct Rectangle: RectangleArea {
var width: Int
var height: Int
func getArea() -> Int {
return width*height
}
}
let rectangle1 = Rectangle(width: 10, height: 10)
print(rectangle1.getArea()) // 100
κ°λ¨ν λ§λ€μ΄λ΄€λλ°μ~
λ¨Όμ RectangleAreaνλ‘ν μ½μ μ μνκ³ getArea()λ©μλμ μꡬμ¬νμ μ£Όμμ΅λλ€!
κ·Έλ¦¬κ³ Rectangleμ΄λΌλ ꡬ쑰체λ₯Ό μ μνκ³ RectangleAreaμ νλ‘ν μ½μ μ±ννκ³ μ€μνλλ‘ νμꡬμ¬
μ€μν νμλ λ΄λΆμ νλ‘νΌν°λ₯Ό μ΄μ©νμ¬ λμ΄λ₯Ό μΆλ ₯νλλ‘ μ½λλ₯Ό μμ±νμ΄μ!
κ·Έλ€μ κ°μ²΄λ₯Ό μ μν ν ν΄λΉ λ©μλλ₯Ό μ΄μ©νμ¬ λμ΄λ₯Ό ꡬνλ©΄
κ²°κ³ΌκΉμ§ μλ²½!!νμ£ ?γ γ
λ©μλ μꡬμ¬ν λ³κ²½
μ΄μ΄μ λ©μλ μꡬμ¬ν λ³κ²½μ λν΄ μμλ³Όκ²μ!!
μ΄λ¦λ§ λ€μΌλ©΄ μ΄λ ΅μ§λ§
μμλ λΆλ€μ μμκ² μ§λ§~~ λ©μλκ° κ°νμ μΈ structλ enumμμ
λ΄λΆ νλ‘νΌν°μ κ°μ λ°κΎΈλ €λ©΄ λ©μλμμ mutatingμ λΆμ¬μ£Όμ¬μΌ κ°λ₯ν©λλ€!!
νλ‘ν μ½μμλ λ§μ°¬κ°μ§μΈλ°μ!!
μ½λλ₯Ό λ°λ‘ νμΈν΄λ³ΌκΉμ?
protocol Togglable {
mutating func toggle()
}
enum OnOffSwitch: Togglable {
case off, on
mutating func toggle() {
switch self {
case .off:
self = .on
case .on:
self = .off
}
}
}
var lightSwitch = OnOffSwitch.off
lightSwitch.toggle()
// lightSwitch .on
Toggleable νλ‘ν μ½μ μ μνκ³ μ€μμΉλ₯Ό on, offνλ κΈ°λ₯μ νλ μ½λμΈλ°μ
λ§μ½ mutatingμ΄ μλ€λ©΄ μλ¬κ° λκ² μ£ ?
κΆκΈνλκΉ ν μ€νΈ ν΄λ³Όκ²μ~

μμλ γ γ
immutableνλ€κ³ νλ€μ~~
μ¬κΈ°μ νλ λ κΆκΈν μ μ΄ μκ²Όλλ° mutatingμ
enum ν¨μμ λΆμ΄λ©΄ μ΄λ»κ² λ κΉμ?

μ΄κ±° μμ νλ‘ν μ½μ μ€μνλΌλ μλ¬λ€μ!
μμ νλ‘ν μ½μ κ·μΉμ λ§λλ κΈ°λ₯μ΄λ€λ
κΉκΉνλ€μ!1
μ€λμ μ¬κΈ°μ λ§λ¬΄λ¦¬ν κ²μ!!
νΉμ μμ μ¬ν μμΌλ©΄ μλ €μ£Όμλ©΄ λ~~무 κ°μ¬νκ² μ΅λλ€γ γ
κΈ μ½μ΄μ£Όμ μ κ°μ¬ν©λλ€!
'iOS > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [iOS/Swift] NotificationCenter.. λ λλ? (1) | 2022.06.20 |
|---|---|
| [iOS/Swift] Protocolμμ보기 - (3/3) (0) | 2022.06.13 |
| [iOS/Swift] protocol μμ보기 - (1/3) (0) | 2022.06.06 |
| [iOS/Swift] νλ‘νΌν° λνΌ(Property Wrapper) (0) | 2022.06.04 |
| [iOS/Swift] μ€λ₯μ²λ¦¬ (Error Handling) (0) | 2022.06.03 |
- Total
- Today
- Yesterday
- RxSwift
- observable
- swift νλ‘ν μ½
- swift urlsession
- Swift Network
- URLSession
- νλ‘νΌν°
- test
- νλ‘ν μ½
- Property
- autolayout
- μ€ν λ μ΄μμ
- set
- ν μ€νΈ
- μ€μννΈ
- Protocol
- RX
- swift
- μ€μννΈ map
- Clean
- ios
- func
- μ€μννΈ νλ‘ν μ½
- 곡λΆ
- network
- μ€μννΈ κ³΅λΆ
- swift 곡λΆ
- XCTest
- Unit Test
- xcode
| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |