import Swift
func sum(a: Int, b: Int) -> Int {
return a + b
}
//๋ฐํ๊ฐ์ด ์๋ ํจ์
func printMyName(name: String) -> Void {
print(name)
}
//Void ๋ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
func printYourName(name: String) {
print(name)
}
//๋งค๊ฐ๋ณ์๊ฐ ์๋ ํจ์
func maximumIntegerValue() -> Int {
return Int.max
}
//MARK: - ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ
// ๊ธฐ๋ณธ๊ฐ์ ๊ฐ๋ ๋งค๊ฐ๋ณ์๋ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก ์ค์ ๋ค์ชฝ์ ์์นํ๋ ๊ฒ์ด ์ข๋ค
func greeting(friend: String, me: String = "kdgt") {
print("Hello \(friend)! I'm \(me)")
}
// ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง๋ ๋งค๊ฐ๋ณ์๋ ์๋ตํ ์ ์๋ค
greeting(friend: "hana") // Hello hana! I'm kdgt
greeting(friend: "john", me: "eric") // Hello john! I'm eric
//MARK: - ์ ๋ฌ์ธ์ ๋ ์ด๋ธ
// ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ํจ์๋ฅผ ํธ์ถํ ๋
// ๋งค๊ฐ๋ณ์์ ์ญํ ์ ์ข ๋ ๋ช
ํํ๊ฒ ํ๊ฑฐ๋
// ํจ์ ์ฌ์ฉ์์ ์
์ฅ์์ ํํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค
// ํจ์ ๋ด๋ถ์์ ์ ๋ฌ์ธ์๋ฅผ ์ฌ์ฉํ ๋์๋ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ์ฌ์ฉํ๋ค
func greeting(to friend: String, from me: String) {
print("Hello \(friend)! I'm \(me)")
}
// ํจ์๋ฅผ ํธ์ถํ ๋์๋ ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ์ฌ์ฉํด์ผ ํ๋ค
greeting(to: "hana", from: "kdgt") // Hello hana! I'm kdgt
//MARK: - ๊ฐ๋ณ ๋งค๊ฐ๋ณ์
// ์ ๋ฌ ๋ฐ์ ๊ฐ์ ๊ฐ์๋ฅผ ์๊ธฐ ์ด๋ ค์ธ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค
// ๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ ํจ์๋น ํ๋๋ง ๊ฐ์ง ์ ์์ต๋๋ค
func sayHelloToFriends(me: String, friends: String...) -> String {
return "Hello \(friends)! I'm \(me)!"
}
print(sayHelloToFriends(me: "kdgt", friends: "hana", "eric", "wing"))
// Hello ["hana", "eric", "wing"]! I'm kdgt!
print(sayHelloToFriends(me: "kdgt"))
// Hello []! I'm kdgt!
๋ค๋ฅธ ์ธ์ด์ ๋ค๋ฅธ ์ ๋ ์๋ค.
- ๋ฐ์ดํฐ ํ์
์ผ๋ก์์ ํจ์
์ค์ํํธ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ํฌํจํ๋ ๋ค์ค ํจ๋ฌ๋ค์ ์ธ์ด์ด๋ค. ์ค์ํํธ์ ํจ์๋ ์ผ๊ธ๊ฐ์ฒด์ด๋ฏ๋ก ๋ณ์, ์์ ๋ฑ์ ์ ์ฅ์ด ๊ฐ๋ฅํ๊ณ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ ๋ฌํ ์๋ ์๋ค.
//MARK: ํจ์์ ํ์
ํํ
// ๋ฐํํ์
์ ์๋ตํ ์ ์์ต๋๋ค
// (<#๋งค๊ฐ๋ณ์1ํ์
#>, <#๋งค๊ฐ๋ณ์2ํ์
#> ...) -> <#๋ฐํํ์
#>
var someFunction: (String, String) -> Void = greeting(to:from:)
someFunction("eric", "kdgt") // Hello eric! I'm kdgt
someFunction = greeting(friend:me:)
someFunction("eric", "kdgt") // Hello eric! I'm kdgt
// ํ์
์ด ๋ค๋ฅธ ํจ์๋ ํ ๋นํ ์ ์์ต๋๋ค
//someFunction = sayHelloToFriends(me: friends:)
func runAnother(function: (String, String) -> Void) {
function("jenny", "mike")
}
// Hello jenny! I'm mike
runAnother(function: greeting(friend:me:))
// Hello jenny! I'm mike
runAnother(function: someFunction)