[Swift] ν¨μ(Func) - κ³ κΈ
π‘λ§€κ°λ³μ κΈ°λ³Έκ°
κΈ°λ³Έκ°μ κ°λ λ§€κ°λ³μλ λ§€κ°λ³μ λͺ©λ‘ μ€μ λ€μͺ½μ μμΉνλ κ²μ΄ μ’λ€
λ§€κ°λ³μ κΈ°λ³Έκ°μ κ°μ§λ λ§€κ°λ³μλ ν¨μ νΈμΆ μ μλ΅ν μ μλ€
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)