λ°μν
ν΄λ‘μ (Closure)
- μ¬μ©μμ μ½λ μμμ μ λ¬λμ΄ μ¬μ©ν μ μλ λ‘μ§μ κ°μ§ μ€κ΄νΈ"{}" ꡬλΆλ μ½λμ λΈλ‘
- μ΄λ¦μ΄ μλ ν¨μ
- ν΄λ‘μ λ μ΄λ ν μμλ λ³μμ μ°Έμ‘°λ₯Ό μΊ‘μ²(capture)ν΄μ μ μ₯ κ°λ₯
- Swiftλ μ΄ μΊ‘μ²μ κ΄λ ¨ν λͺ¨λ λ©λͺ¨λ¦¬λ₯Ό μμμ μ²λ¦¬
- νλΌλ―Έν°λ₯Ό λ°μ μ μκ³ , λ°ν κ°μ΄ μ‘΄μ¬ν μ μλ€λ μ μμ ν¨μμ λμΌ
- Swift ν΄λ‘μ λ μ΅μ νλ₯Ό ν΅ν΄ κΉλνκ³ λͺ
νν μ€νμΌμ κ°μ§κ³ μμ
- λ¬Έλ§₯(context)μμ μΈμ νμ κ³Ό λ°ν νμ μ μΆλ‘
- λ¨μΌ ννμ ν΄λ‘μ μ μμμ λ°ν
- μΆμ½λ μΈμ μ΄λ¦
- νμ ν΄λ‘μ λ¬Έλ²
{ (λ§€κ°λ³μ μ΄λ¦ : λ§€κ°λ³μ νμ
) -> λ°ννμ
in
ν΄λ‘μ ννμ μ½λ
}
νν ν΄λ‘μ (trailing closure)
- ν΄λ‘μ κ° ν¨μμ λ§μ§λ§ argumentλΌλ©΄, λ§μ§λ§ λ§€κ°λ³μ μ΄λ¦μ μλ΅ν ν ν¨μ μκ΄νΈ μΈλΆμ ν΄λ‘μ λ₯Ό ꡬνν μ μκ² ν΄μ£Όλ κ²
//νν ν΄λ‘μ λ―Έμ¬μ©
let onAction = UIAlertAction(title: "On", style: UIAlertAction.Style.default, handler: {
//μ€ν μ½λ
})
//νν ν΄λ‘μ μ¬μ©
let onAction = UIAlertAction(title: "On", style: UIAlertAction.Style.default) {
//μ€ν μ½λ
})
ν΄λ‘μ μΆμ½ νν
- νμ
μλ΅
- ν΄λ‘μ λ λ©μλμμ μꡬνλ ννλ‘ μ λ¬ν΄μΌ ν¨
- κ·Έλμ μ€μννΈμμλ μ΄λ¬ν λ¬Έλ§₯μ μ΄μ©ν΄ νμ μ μ μΆν μ μμ
- κ·Έλμ λ§€κ°λ³μμ νμ μ΄λ λ°ν νμ μ μλ΅ν΄μ ν΄λ‘μ λ₯Ό μ¬μ© κ°λ₯
- return μλ΅
- λ§€κ°λ³μ μλ΅
- λ§€κ°λ³μμ μ΄λ¦μ λͺ μνμ§ μμλ $μ μ«μμ μ‘°ν©μΌλ‘ λ¨μΆ μΈμ μ΄λ¦μ μ¬μ© κ°λ₯
- $0μ΄ μ²« λ²μ§Έ λ§€κ°λ³μκ° λκ³ $1λ λ λ²μ§Έ λ§€κ°λ³μ
- 'in' ν€μλλ μλ΅
- μ°μ°μλ§ νκΈ°
- ν΄λ‘μ λ λ§€κ°λ³μμ νμ κ³Ό λ°ν νμ μ΄ μ°μ°μλ₯Ό ꡬνν ν¨μμ λͺ¨μκ³Ό λμΌνλ€λ©΄, μ°μ°μλ§ νκΈ°νλλΌλ μμμ μ°μ°νκ³ λ°ν
let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
let reversed = names.sorted(by: { (s1: String, s2: String) -> Bool in
return s1 > s2
})
//νμ
μλ΅
let reversed = names.sorted(by: { (s1, s2) in
return s1 > s2
})
//return μλ΅
let reversed = names.sorted(by: { (s1, s2) in
s1 > s2
})
//λ§€κ°λ³μ μλ΅
let reversed = names.sorted(by: {
return $0 > $1
})
//μ°μ°μλ§ νκΈ°
let reversed = names.sorted(by: >)
λ°μν
'β¨οΈ Language > swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ LV.1] μμ μ°ΎκΈ° (0) | 2023.02.07 |
---|---|
[Swift] κ³ μ°¨ν¨μ (0) | 2023.02.06 |
[Swift] μ΅μ€ν μ (Extensions) (0) | 2023.02.06 |
[Swift] νλ‘ν μ½ (Protocol) (0) | 2023.02.06 |
[Swift] assertμ guard (0) | 2023.02.06 |