์ด๋ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ง์ ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๊ฑฐ๋ ํจ์คํ๊ณ ์๋กญ๊ฒ ์๊ฒ ๋ ์ง์ ์์ฃผ๋ก ์ ๋ฆฌํด ๋ณด๋ ค ํฉ๋๋ค.
Functions With an Implicit Return
func greeting(for person: String) -> String {
"Hello, " + person + "!"
}
์ ์ฒด ๋ณธ๋ฌธ์ด ํ์ค๋ก ํํ์ด ๋๋ค๋ฉด returnํค์๋ ์๋ต ๊ฐ๋ฅ
Specifying Argument Labels
func greet(person: String, from hometown: String) -> String {
return "Hello \\(person)! Glad you could visit from \\(hometown)."
}
print(greet(person: "Bill", from: "Cupertino"))
ํจ์ ๋ด๋ถ์์ ์ฌ์ฉํ ์ธ์ ์ด๋ฆ ์ง์ ์ด ๊ฐ๋ฅํ๋ค.
๊ฐ๋ณ ํ๋ผ๋ฏธํฐ (Variadic Parameters)
func arithmeticMean(_ numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total / Double(numbers.count)
}
arithmeticMean(1, 2, 3, 4, 5)
0๊ฐ ์ด์์ ํน์ ํ์
์ ๊ฐ์ ํ์ฉํ๋ค.
์ฌ๋ฌ๊ฐ์ ์
๋ ฅ๊ฐ ์ด ์ ๋ฌ๋ ์ ์๋ ํ๋ผ๋ฏธํฐ์ผ ๋ ์ฌ์ฉํ๋ค.
ํ๋ผ๋ฏธํฐ์ ํ์
์ด๋ฆ ๋ค์ ์ธ๊ฐ์ ๊ฐ๊ฒฉ ๋ฌธ์ (...)๋ฅผ ์ถ๊ฐํ๋ค.
In-Out ํ๋ผ๋ฏธํฐ
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
ํจ์ ํ๋ผ๋ฏธํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์๋ค.
ํจ์์ ํ๋ผ๋ฏธํฐ ๊ฐ์ ๋ณ๊ฒฝ ํ๊ณ ํจ์ ํธ์ถ์ด ์ข
๋ฃ๋ ํ์๋ ์ด๋ฌํ ๋ณ๊ฒฝ๋ ๊ฐ์ ์ ์ง ํ๊ณ ์ถ์ ๋, inout ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ค.