λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⌨️ Language/swift

[Swift] μ΅μŠ€ν…μ…˜ (Extensions)

by hyebin (Helia) 2023. 2. 6.
λ°˜μ‘ν˜•

μ΅μŠ€ν…μ…˜ (Extensions)

  • μ΅μŠ€ν…μ…˜μ„ μ΄μš©ν•΄ 클래슀, ꡬ쑰체, μ—΄κ±°ν˜• ν˜Ήμ€ ν”„λ‘œν† μ½œ νƒ€μž…μ— κΈ°λŠ₯을 μΆ”κ°€ κ°€λŠ₯
  •  μ΅μŠ€ν…μ…˜μ€ νƒ€μž…μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•  수 μžˆμ§€λ§Œ, μ˜€λ²„λΌμ΄λ“œλŠ” ν•  수 μ—†μŒ
  • κ³„μ‚°λœ μΈμŠ€ν„΄μŠ€ 속성 및 계산 μœ ν˜• 속성 μΆ”κ°€
  • μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ 및 νƒ€μž… λ©”μ„œλ“œ μ •μ˜
  • μƒˆ μ΄λ‹ˆμ…œλΌμ΄μ € 제곡
  • Subscript μ •μ˜
  • μƒˆ 쀑첩 νƒ€μž… μ •μ˜ 및 μ‚¬μš©
  • κΈ°μ‘΄ νƒ€μž…μ„ ν”„λ‘œν† μ½œμ— 맞게 μ„€μ •
extension Int {
     var add: Int { return self + 100 }
     var sub: Int { return self - 10 }
     var mul: Int { return self * 10 }
     var div: Int { return self / 5 }
}

let addition = 3.add
print("Addition is \(addition)") // Addition is 103

let subtraction = 120.sub
print("Subtraction is \(subtraction)") // Subtraction is 110

let multiplication = 39.mul
print("Multiplication is \(multiplication)") // Multiplication is 390

let division = 55.div
print("Division is \(division)") // Division is 11

let mix = 30.add + 34.sub
print("Mixed Type is \(mix)") // Mixed Type is 154

 

ν”„λ‘œν† μ½œ μ΅μŠ€ν…μ…˜

  • 이미 μ‘΄μž¬ν•˜λŠ” νƒ€μž…μ— μƒˆ ν”„λ‘œν† μ½œμ„ λ”°λ₯΄κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ ν™•μž₯(extension)을 μ‚¬μš© κ°€λŠ₯
  • κΈ°λ³Έ λ©”μ„œλ“œ κ΅¬ν˜„μ„ μœ„ν•΄ ν”„λ‘œν† μ½œ μ΅μŠ€ν…μ…˜μ„ μ‚¬μš©ν•  수 있음
  • μ΅μŠ€ν…μ…˜μ„ μ‚¬μš©ν•΄ 클래슀λ₯Ό λ‚˜λˆ„κ²Œ 되면 가독성이 높아짐
//κΈ°μ‘΄ μ½”λ“œ
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

}

//μ΅μŠ€ν…μ…˜ μ‚¬μš©
class ViewController: UIViewController{}
extension ViewController: UIPickerViewDelegate{}
extension ViewController: UIPickerViewDataSource{}
λ°˜μ‘ν˜•

'⌨️ Language > swift' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Swift] κ³ μ°¨ν•¨μˆ˜  (0) 2023.02.06
[Swift] ν΄λ‘œμ € (Closure)  (0) 2023.02.06
[Swift] ν”„λ‘œν† μ½œ (Protocol)  (0) 2023.02.06
[Swift] assert와 guard  (0) 2023.02.06
[Swift] νƒ€μž… μΊμŠ€νŒ…  (0) 2023.02.06