-
[Swift] ν¨μ(Func) - κ³ κΈiOS/Swift 2022. 7. 25. 17:34
π‘맀κ°λ³μ κΈ°λ³Έκ°
κΈ°λ³Έκ°μ κ°λ 맀κ°λ³μλ 맀κ°λ³μ λͺ©λ‘ μ€μ λ€μͺ½μ μμΉνλ κ²μ΄ μ’λ€
맀κ°λ³μ κΈ°λ³Έκ°μ κ°μ§λ 맀κ°λ³μλ ν¨μ νΈμΆ μ μλ΅ν μ μλ€
func ν¨μμ΄λ¦(맀κ°λ³μμ΄λ¦1: 맀κ°λ³μνμ 1, 맀κ°λ³μμ΄λ¦2: 맀κ°λ³μνμ 2 = 맀κ°λ³μ κΈ°λ³Έκ°...) -> λ°ννμ { ν¨μ ꡬνλΆ return λ°νκ° } func greeting(friend: String, me: String = "yeonsu") { print ("Hello \(friend)! I'm \(me)") }
greeting(friend: "John") //Hello John! I'm yeonsu greeting(friend: "John", me: "bonny")
π‘μ λ¬μΈμ λ μ΄λΈ
μ λ¬μΈμ λ μ΄λΈμ ν¨μλ₯Ό νΈμΆν λ 맀κ°λ³μμ μν μ μ’ λ λͺ ννκ² νκ±°λ ν¨μ μ¬μ©μμ μ μ₯μμ νννκ³ μ ν λ μ¬μ©νλ€
(*ν¨μ μ€λ³΅ μ μ μμ μ μ©)
μ£Όμν μ
ν¨μ λ΄λΆμμ μ λ¬μΈμλ₯Ό μ¬μ©ν λμλ 맀κ°λ³μ μ΄λ¦μ μ¬μ©νλ€
func greeting(to friend: String, from me: String) {
print("Hello \(friend)! I'm \(me)")
}
ν¨μλ₯Ό νΈμΆν λμλ μ λ¬μΈμ λ μ΄λΈμ μ¬μ©ν΄μΌ νλ€
greeting(to: "gayeon", from: "yeonsu")
func ν¨μμ΄λ¦(μ λ¬μΈμλ μ΄λΈ 맀κ°λ³μμ΄λ¦1: 맀κ°λ³μνμ 1, μ λ¬μΈμλ μ΄λΈ 맀κ°λ³μμ΄λ¦2: 맀κ°λ³μνμ 2...) -> λ°ννμ { ν¨μ ꡬνλΆ return } // κΈ°μ‘΄ greeting ν¨μμλ λ¬λ¦¬ greeting, to, from κΉμ§ ν¨μμ μ΄λ¦μΌλ‘ μ·¨κΈ // ν¨μ λ΄λΆμμ μ λ¬μΈμλ₯Ό μ¬μ©ν λμλ 맀κ°λ³μ μ΄λ¦μ μ¬μ©νλ€ func greeting(to friend: String, from me: String) { print("Hello \(friend)! I'm \(me)") } // ν¨μλ₯Ό νΈμΆν λμλ μ λ¬μΈμ λ μ΄λΈμ μ¬μ©ν΄μΌ νλ€ greeting(to: "gayeon", from: "yeonsu")
π‘κ°λ³ 맀κ°λ³μ
μ λ¬ λ°μ κ°μ κ°μλ₯Ό μκΈ° μ΄λ €μΈ λ μ¬μ©ν μ μλ€
κ°λ³ 맀κ°λ³μλ ν¨μ λΉ νλλ§ κ°μ§ μ μλ€
func sayHelloToFriend(me: String, friend: String...) -> String { return "Hello \(friend)! I'm \(me)!" } print(sayHelloToFriend(me: "yeonsu", friend: "gayeon", "ato", "stranger")) print(sayHelloToFriend(me: "yeonsu")) //Hello []! I'm yeonsu!
π‘λ°μ΄ν° νμ μΌλ‘μμ ν¨μ
μ€μννΈλ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ ν¬ν¨νλ λ€μ€ ν¨λ¬λ€μ μΈμ΄μ΄λ€
μ€μννΈμ ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ λ³μ, μμ λ±μ μ μ₯μ΄ κ°λ₯νκ³ , 맀κ°λ³μλ₯Ό ν΅ν΄ μ λ¬ν μ μλ€
// =================== < ν¨μμ νμ νν > =================== // λ°ννμ μ μλ΅ν μ μλ€ // (맀κ°λ³μνμ 1, 맀κ°λ³μνμ 2...) -> λ°ννμ var someFunction: (String, String) -> Void = greeting(to: from:) someFunction("gayeon", "yeonsu") someFunction = greeting(friend: me:) someFunction("John", "yeonsu") // νμ μ΄ λ€λ₯Έ ν¨μλ ν λΉν μ μλ€ // someFunction = sayHelloToFriend(me: friend:) //κ°λ³ 맀κ°λ³μλ₯Ό κ°μ§κΈ° λλ¬Έμ μΌλ° 맀κ°λ³μμ λ€λ¦ //functionμ λ°νκ°μ΄ μκ³ String νμ 맀κ°λ³μ 2κ°λ₯Ό κ°λ 맀κ°λ³μμ΄λ€ func runAnother(function: (String, String) -> Void) { function("jenny", "john") } runAnother(function: greeting(friend: me:)) runAnother(function: someFunction)
μ 체 μμ€μ½λ
// // Function2.swift // iOS study // // Created by yeonsu on 2022/07/25. // import Swift // =================== < 맀κ°λ³μ κΈ°λ³Έκ° > =================== // κΈ°λ³Έκ°μ κ°λ 맀κ°λ³μλ 맀κ°λ³μ λͺ©λ‘ μ€μ λ€μͺ½μ μμΉνλ κ²μ΄ μ’λ€ /* func ν¨μμ΄λ¦(맀κ°λ³μμ΄λ¦1: 맀κ°λ³μνμ 1, 맀κ°λ³μμ΄λ¦2: 맀κ°λ³μνμ 2 = 맀κ°λ³μ κΈ°λ³Έκ°...) -> λ°ννμ { ν¨μ ꡬνλΆ return λ°νκ° } */ func greeting(friend: String, me: String = "yeonsu") { print ("Hello \(friend)! I'm \(me)") } // 맀κ°λ³μ κΈ°λ³Έκ°μ κ°μ§λ 맀κ°λ³μλ ν¨μ νΈμΆ μ μλ΅ν μ μλ€ greeting(friend: "John") //Hello John! I'm yeonsu greeting(friend: "John", me: "bonny") // =================== < μ λ¬μΈμ λ μ΄λΈ > =================== // μ λ¬μΈμ λ μ΄λΈμ ν¨μλ₯Ό νΈμΆν λ 맀κ°λ³μμ μν μ μ’ λ λͺ ννκ² νκ±°λ ν¨μ μ¬μ©μμ μ μ₯μμ νννκ³ μ ν λ μ¬μ©νλ€(*ν¨μ μ€λ³΅ μ μ μμ μ μ©) /* func ν¨μμ΄λ¦(μ λ¬μΈμλ μ΄λΈ 맀κ°λ³μμ΄λ¦1: 맀κ°λ³μνμ 1, μ λ¬μΈμλ μ΄λΈ 맀κ°λ³μμ΄λ¦2: 맀κ°λ³μνμ 2...) -> λ°ννμ { ν¨μ ꡬνλΆ return } */ // κΈ°μ‘΄ greeting ν¨μμλ λ¬λ¦¬ greeting, to, from κΉμ§ ν¨μμ μ΄λ¦μΌλ‘ μ·¨κΈ // ν¨μ λ΄λΆμμ μ λ¬μΈμλ₯Ό μ¬μ©ν λμλ 맀κ°λ³μ μ΄λ¦μ μ¬μ©νλ€ func greeting(to friend: String, from me: String) { print("Hello \(friend)! I'm \(me)") } // ν¨μλ₯Ό νΈμΆν λμλ μ λ¬μΈμ λ μ΄λΈμ μ¬μ©ν΄μΌ νλ€ greeting(to: "gayeon", from: "yeonsu") // =================== < κ°λ³ 맀κ°λ³μ > =================== // μ λ¬ λ°μ κ°μ κ°μλ₯Ό μκΈ° μ΄λ €μΈ λ μ¬μ©ν μ μλ€ // κ°λ³ 맀κ°λ³μλ ν¨μ λΉ νλλ§ κ°μ§ μ μλ€ /* func ν¨μμ΄λ¦(맀κ°λ³μμ΄λ¦1: 맀κ°λ³μνμ 1, 맀κ°λ³μμ΄λ¦2: 맀κ°λ³μνμ 2...) -> λ°ννμ { ν¨μ ꡬνλΆ return } */ func sayHelloToFriend(me: String, friend: String...) -> String { return "Hello \(friend)! I'm \(me)!" } print(sayHelloToFriend(me: "yeonsu", friend: "gayeon", "ato", "stranger")) print(sayHelloToFriend(me: "yeonsu")) //Hello []! I'm yeonsu! // =================== < λ°μ΄ν° νμ μΌλ‘μμ ν¨μ > =================== // μ€μννΈλ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ ν¬ν¨νλ λ€μ€ ν¨λ¬λ€μ μΈμ΄μ΄λ€ // μ€μννΈμ ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ λ³μ, μμ λ±μ μ μ₯μ΄ κ°λ₯νκ³ , 맀κ°λ³μλ₯Ό ν΅ν΄ μ λ¬ν μ μλ€ // =================== < ν¨μμ νμ νν > =================== // λ°ννμ μ μλ΅ν μ μλ€ // (맀κ°λ³μνμ 1, 맀κ°λ³μνμ 2...) -> λ°ννμ var someFunction: (String, String) -> Void = greeting(to: from:) someFunction("gayeon", "yeonsu") someFunction = greeting(friend: me:) someFunction("John", "yeonsu") // νμ μ΄ λ€λ₯Έ ν¨μλ ν λΉν μ μλ€ // someFunction = sayHelloToFriend(me: friend:) //κ°λ³ 맀κ°λ³μλ₯Ό κ°μ§κΈ° λλ¬Έμ μΌλ° 맀κ°λ³μμ λ€λ¦ //functionμ λ°νκ°μ΄ μκ³ String νμ 맀κ°λ³μ 2κ°λ₯Ό κ°λ 맀κ°λ³μμ΄λ€ func runAnother(function: (String, String) -> Void) { function("jenny", "john") } runAnother(function: greeting(friend: me:)) runAnother(function: someFunction)
μΆλ ₯ κ²°κ³Ό
'iOS > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] μ΅μ λ(Optional) (0) 2022.07.26 [Swift] 쑰건문(Conditional), λ°λ³΅λ¬Έ(Loop) (0) 2022.07.26 [Swift] ν¨μ(Func) - κΈ°λ³Έ (0) 2022.07.25 [Swift] 컬λ μ νμ (Array, Dictionary, Set) (0) 2022.07.25 [Swift] κΈ°λ³Έ λ¬Έλ² μ 리 (0) 2022.07.24