-
Function Types - FunctionsiOS/π Swift 2020. 11. 8. 16:25
Function Typesλ λ³μλ μμμ ν¨μλ₯Ό assign νλ κ²½μ°, νμ μ λͺ μν λ νμν©λλ€.
Swiftμμ ν¨μλ first-class citizen μ΄λ―λ‘, λ³μλ μμμ ν¨μλ₯Ό assign ν μ μμ΅λλ€.
μ΄μ κΈμμ Function Notationλ§μ μ΄μ©νμ¬ νμ μΆλ‘ μ ν΅ν΄ μ μ₯νμμ§λ§,
ν¨μλ μλ£νμ κ°μ§κ³ μμΌλ―λ‘ λͺ μμ μΌλ‘ λ³μ νΉμ μμμ νμ λ νκΈ°ν μ μμ΅λλ€.
λν ν΄λ‘μ λ₯Ό νλΌλ―Έν°λ‘ λ°λ μ½λλ₯Ό μ΄ν΄νκΈ° μν΄ Function Typesμ μ΄ν΄νλ κ²μ νμν©λλ€.
Syntax
/* Function Types */ (type) -> type () -> () // () -> void λ‘λ νκΈ°ν μ μμ΅λλ€. Functionμμ μ°λ void λ 리ν΄νμ΄ μλ€λ κ²μ μλ―Έν©λλ€.
Example Code 1
func sayHello() { print("Hello, Swift") } let f1 = sayHello // Type Inference func printHello(with name: String){ print("Hello, \(name)") } let f2: (String) -> () = printHello(with:) // Type Notation with Function Types
λ¨, f2λ₯Ό ν¨μλ‘ νΈμΆν κ²½μ°, Function Types λ§ λ°μμ€κΈ° λλ¬Έμ, Argument Lable μμ΄ νΈμΆνμ¬μΌ ν©λλ€.
Argument Labelμ λ£μ μ μ»΄νμΌ μλ¬
Example Code 2
func selectFunction(from op: String) -> (Int, Int) -> Int { ... } // νμ΄νκ° λ§μ ν·κ°λ¦΄ μ μμΌλ, // μ΄ λλ 첫λ²μ§Έ νμ΄νλ§ selectFuntion(from:)μ λ¦¬ν΄ κ°μ λνλ΄κ³ , // λλ¨Έμ§λ νμ νμ μ λν νμ΄νμμ μκΈ°νλ©΄ λ©λλ€. // μ¦, selectFunction(from:)μ ν΄λ‘μ λ₯Ό 리ν΄νλ ν¨μ μ λλ€. /* κ°λ μ±μ ν₯μμν€λ λ°©λ² */ typealias Arithmeticfuntion = (Int, Int) -> Int
λ.
μ΄μ κΈ: Function Notation - Functions
'iOS > π Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Side Effect - General (0) 2020.11.24 Nested Functions - Functions (0) 2020.11.08 [Swift] Function Notation - Functions (2) 2020.11.08 Variadic Parameters - Functions (0) 2020.11.07 Argument Label - Functions (0) 2020.11.07