ν΄λ‘μ μ ν¨μμ κΈ°λ₯μ λμΌ νλ€. ν΄λ‘μ λ μ΄λ¦μ΄ μλ ν¨μλ‘ ν¨μλ³΄λ€ μ’ λ ν° κ°λ μ΄λΌκ³ 보면 λλ€.
μ€μννΈλ μΌκΈ κ°μ²΄λ‘ μ·¨κΈνλ€. (νλ‘ν μ½λ μΌκΈκ°μ²΄)
ν¨μμ νλ‘ν μ½λ νμ μΌλ‘ μ·¨κΈνλ€.
→ ν¨μλ λ³μμ ν λΉ κ°λ₯
→ ν¨μλ₯Ό νΈμΆν λ ν¨μλ₯Ό νλΌλ―Έν°λ‘ μ λ¬ κ°λ₯
→ ν¨μμμ ν¨μλ₯Ό λ°ν κ°λ₯
//νν(Trailing) ν΄λ‘μ
closureParamFunction(closure: {
print("ν¨μ μ€ν")
})
closureParamFunction(closure:) {
print("ν¨μ μ€ν")
}
closureParamFunction() {
print("ν¨μ μ€ν")
}
closureParamFunction() {
print("ν¨μ μ€ν")
}
closureParamFunction {
print("ν¨μ μ€ν")
}
//νλΌλ―Έν° μλ΅
closureParamFunction(closure: { str in
return str.count
})
closureParamFunction{ $0.count }
returnμ΄ μκΈ° λλ¬Έμ μμνλ μλ΅ κ°λ₯.
ν μ€μΌ κ²½μ° return μλ΅ κ°λ₯
λ§€κ°λ³μ νμ μΆλ‘ μ΄ κ°λ₯νλ€λ©΄ νμ μλ΅ κ°λ₯
( ) -> ( ) : μΈνκ³Ό μμνμ΄ μλ€λ©΄ μλ΅ κ°λ₯
ν΄λ‘μ μ체λ‘λ μ무 κ²λ ν μ μλ€. λ³μμ ν λΉ νμ§ μμΌλ©΄ μλ¬κ° λ°μνλ€.
ν¨μλ λ³μμ ν λΉ κ°λ₯νλ€.
func addStr(param: String) -> String {
return param + "!!"
}
//ν¨μλ₯Ό λ³μμ ν λΉ
var str = addStr //νμ
λͺ
μ: var clo: (String) -> String = addStr
//addStr(param: "μλ
νμΈμ")
//μλλ ν¨μμ νλΌλ―Έν°λ₯Ό λ£μ΄μ£Όμ΄μΌ νμ§λ§ νΈμΆν λ νλΌλ―Έν°κ° λ€μ΄κ°κΈ° λλ¬Έμ () μλ΅ κ°λ₯
str("μλ
")
κ°μ κ°λ μΌλ‘ ν΄λ‘μ λ λ³μμ ν λΉ κ°λ₯.
//ν΄λ‘μ λ₯Ό λ³μμ ν λΉ
let clo = {(param: String) -> String in
return param + "!!"
}
//ν΄λ‘μ μ€ν
clo("μλ
")
π Reference