๐ ํจ์ ๊ธฐ๋ณธ
// Swift์์๋ ํจ์๋ฅผ ์๋์ ๊ฐ์ด ์ ์ธ!
func ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์1์ด๋ฆ: ๋งค๊ฐ๋ณ์1ํ์
, ๋งค๊ฐ๋ณ์2์ด๋ฆ: ๋งค๊ฐ๋ณ์2ํ์
...) -> ๋ฐํํ์
{
/* ํจ์ ๊ตฌํ๋ถ */
return ๋ฐํ๊ฐ
}
// example
func sum(a: Int, b: Int) -> Int {
return a + b
}
-> ํจ์์ ๋ฐํ ๊ฐ์ด ์๋ค๋ฉด Void ํํ๋ก ๋ฐํํ๊ฑฐ๋ ์๋ต ๊ฐ๋ฅ!
- Swift์์๋ ํจ์ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฏธ๋ฆฌ ์ค์ ํด๋ ์ ์๋ค.
// ํจ์ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ ์ค์
func greeting(friend: String, me: String = "pig") {
print("Hello \(friend)! I'm \(me)")
}
- ์ฌ์ฉ์ ์ ์ฅ์์ ๋ ์์๋ณด๊ธฐ ์ฝ๋๋ก "์ ๋ฌ์ธ์ ๋ ์ด๋ธ" ๊ธฐ๋ฅ์ ์ ๊ณต
// ํจ์ ์ ๋ฌ์ธ์ ๋ ์ด๋ธ
func greeting(to friend: String, from me: String) {
print("Hello \(friend)! I'm \(me)")
}
// ํจ์๋ฅผ ํธ์ถํ ๋์๋ ์ ๋ฌ์ธ์ ์๋ฆฌ๋ธ์ ์ฌ์ฉํด์ผ ํ๋ค.
greeting(to: "hana", from: "pig")
- ์ ๋ฌ ๋ฐ์ ๊ฐ์ ๊ฐ์๋ฅผ ์๊ธฐ ์ด๋ ค์ด ์ํฉ์์๋ "๊ฐ๋ณ ๋งค๊ฐ๋ณ์" ๊ธฐ๋ฅ์ ์ ๊ณต
์ด๋, ๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ ํจ์์์ 1๊ฐ๋ง ์ฌ์ฉ๋ ์ ์๋ค.
// ๊ฐ๋ณ ๋งค๊ฐ๋ณ์
func sayHelloToFriends(me: String, friends: String...) -> String {
return "Hello \(friends)! I'm \(me)!"
}
print(sayHelloToFriends(me: "apple", friends: "hana", "eric", "wing"))
// Hello ["hana", "eric", "wing"]! I'm apple!
๐ ์ผ๊ธ ๊ฐ์ฒด(first-class object)
ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด์ด๋ฏ๋ก ๋ณ์, ์์, ๋งค๊ฐ๋ณ์์ ๋ฃ์ ์ ์๋ค.