π‘ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μ?
- νλ‘κ·Έλ¨μ΄ μνμ λ³ν μμ΄ λ°μ΄ν° μ²λ¦¬λ₯Ό μνμ ν¨μ κ³μ°μΌλ‘ μ·¨κΈνκ³ μ νλ ν¨λ¬λ€μ
- ν¨μ μ체μ μμ©μ μ€μνκ² μ¬κΉ
- μμνκ² ν¨μμ μ λ¬λ μΈμ κ°λ§ κ²°κ³Όμ μν₯μ μ£Όλ―λ‘ μν κ°μ κ°μ§ μκ³ μμνκ² ν¨μλ§μΌλ‘ λμ
- μ΄λ€ μν©μμ νλ‘κ·Έλ¨μ μ€ννλλΌλ μΌμ νκ² κ°μ κ²°κ³Όλ₯Ό λμΆν μ μμ!
ν¨μν νλ‘κ·Έλλ°μ μ₯μ
- νλ‘κ·Έλ¨μ΄ λμνλ νλ¦μμ μν(κ°)μ΄ λ³νμ§ μμΌλ©΄ ν¨μ νΈμΆμ΄ κ°κ° μνΈ κ°μμμ΄ λ°°νμ μΌλ‘ μ€νλλ―λ‘ λ³λ ¬μ²λ¦¬ν λ λΆμμ©μ΄ κ±°μ μλ€.
- λν, νμν λ§νΌ ν¨μλ₯Ό λλμ΄ μ²λ¦¬ν μ μλλ‘ μ€μΌμΌ μ ν μ μκΈ° λλ¬Έμ λκ·λͺ¨ λ³λ ¬μ²λ¦¬μ ν° κ°μ !
- λ©ν° μ½μ΄ νΉμ μ¬λ¬ κ° μ°μ° νλ‘μΈμλ₯Ό μ¬μ©νλ μμ€ν μμ ν¨μ¨μ μΈ νλ‘κ·Έλ¨μ λ§λ€κΈ° μ½λ€.
- μνλ³νμ λ°λ₯Έ λΆμμ©μμ μμ λ‘μμ§λ―λ‘ μμνκ² κΈ°λ₯ ꡬνμ μ΄μ μ λ§μΆμ΄ μ€κ³ν μ μλ€.
ν¨μν νλ‘κ·Έλλ°μ μΌκΈ κ°μ²΄ 쑰건 (λͺ¨λ μΆ©μ‘±ν΄μΌν¨)
- μ λ¬μΈμλ‘ μ λ¬ ν μ μλ€.
- λμ νλ‘νΌν° ν λΉμ΄ κ°λ₯νλ€.
- λ³μλ λ°μ΄ν° ꡬ쑰 μμ λ΄μ μ μλ€.
- λ°ν κ°μΌλ‘ μ¬μ©ν μ μλ€.
- ν λΉν λ μ¬μ©λ μ΄λ¦κ³Ό κ΄κ³μμ΄ κ³ μ ν κ°μ²΄λ‘ ꡬλ³ν μ μλ€.
μ€μννΈμ ν¨μλ μ΄ μ‘°κ±΄μ λͺ¨λ μΆ©μ‘±νκΈ°μ ν¨μλ₯Ό μΌκΈκ°μ²΄λ‘ μ·¨κΈνλ€.
μΌκΈ κ°μ²΄?
μ»΄ν¨ν° νλ‘κ·Έλλ° μΈμ΄ λμμΈμμ, μΌκΈ κ°μ²΄λ λ€λ₯Έ κ°μ²΄λ€μ μΌλ°μ μΌλ‘ μ μ© κ°λ₯ν μ°μ°μ λͺ¨λ μ§μνλ κ°μ²΄λ₯Ό κ°λ¦¬ν¨λ€. λ³΄ν΅ ν¨μμ μΈμλ‘ λκΈ°κΈ°, μμ νκΈ°, λ³μμ λμ νκΈ°μ κ°μ μ°μ°μ μ§μν λ μΌκΈ κ°μ²΄λΌνλ€
- μν€λ°±κ³Ό
β° ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μ μ½λ
// doSomething ν¨μμ doAnotherThing ν¨μλ₯Ό λͺ¨λ μ²λ¦¬νκ³ μΆμ κ²½μ°
func doSomething(){
print("do somgthing")
}
func doAnotherThing(){
print("do another thing")
}
func excute(tasks: [()-> Void] {
for task in tasks {
task()
}
}
excute(tasks: [doSomething, doAnotherThing]) // λ ν¨μλ₯Ό μ λ¬μΈμλ‘ μ¬μ©ν μ μλ€.
// λ μμ ν©μ ꡬνκ³ μΆμ κ²½μ°
func sum(first: Int) -> ((Int)->Int){
return { second in first + second }
}
// ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμμ μ¦κ²¨ μ¬μ©λλ μ»€λ§ κΈ°λ²μΌλ‘ μ λ¬μΈμλ₯Ό νλλ§ λκ³ λ°ννλ©΄μ second in first + second μ²λΌ μ λ¬μΈμλ₯Ό μ¬μ©ν μ μλ€.
// μ»€λ§ κΈ°λ² ? μ¬λ¬κ°μ 맀κ°λ³μλ₯Ό κ°λ ν¨μλ₯Ό 맀κ°λ³μ νλλ₯Ό κ°λ ν¨μμ λμ΄λ‘ νννλ λ°©λ²
sum(first: 10)(5)
μ€μννΈκ° ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ μ°¨μ©ν μμ
- μ€μννΈλ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° ν¨λ¬λ€μ + ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μ
- μ νμ νλ μμν¬λ₯Ό λ²μ΄λ λ€λ₯Έ μμ (μλ₯Όλ€λ©΄ μλ²μ© νλ μμν¬ λ±)μμ μ€μννΈλ₯Ό μ¬μ©νμ λ μμνκ² ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μ λ§μΌλ‘ νλ‘κ·Έλ¨μ μμ±ν μ μμ΄ μ νμ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ νΉν κ°μ‘°νλ€.
- λμ λ°λΌ μ μ νκ² κ°μ²΄μ§ν₯κ³Ό ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ μμ΄ νλ‘κ·Έλ¨μ μμ±νλ©΄ νμν κΈ°λ₯μ λ§κ² μ΅μ μ μ±λ₯μ λ°νν μλ μκ³ , μμ°μ±λ κ·Ήλν ν μ μλ€.
Reference
Swift νλ‘κ·Έλλ° 3ν - μΌκ³°