02 Nov 2017
|
ํจ์
parameter
swift
function
ํจ์
Parameter
์ธ๋ถ ํ๋ผ๋ฏธํฐ / ๋ด๋ถ ํ๋ผ๋ฏธํฐ
ํจ์์ ๊ฐ๋
์ฑ์ ์ํด์ ํจ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ๊ณผ ํจ์ ์์ ๊ตฌํ๋ ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ์ด ๋ค๋ฅด๋ค.
์๋๋ ์ธ๋ถํ๋ผ๋ฏธํฐ๊ฐ ๊ฐ๋
์ฑ์ ๋์ผ ์ ์๋ค๋ ๊ฒ์ ์๋ ค์ฃผ๋ ์์ , ๊ตฌ์ด์ฒ๋ผ ์ ์น์ฌ to๋ฅผ ์ธ๋ถ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํ๋ค.
func ํจ์๋ช
(์ธ๋ถํ๋ผ๋ฏธํฐ ๋ด๋ถํ๋ผ๋ฏธํฐ: ํ์
){}
func printGreeting(to name: String){
print("Hello \(name), welcome!")
}
// ํจ์ํธ์ถ
printGreeting(to: "Aliens")
๊ฐ๋ณ์ธ์
๋ณดํต ํจ์๋ ๋ฏธ๋ฆฌ ์ ์๋ ํ์๊ณผ ๊ฐ์์ ๋ง๋ ์ธ์๊ฐ๋ง ์ฒ๋ฆฌํ์ง๋ง, ์ค์ํํธ์์๋ ํจ์๊ฐ ๊ฐ๋ณ์ ์ธ ๊ฐ์์ ์ธ์๊ฐ์ ์
๋ ฅ๋ฐ์ ์ ์๋๋ก ์ง์ํ๋ค.
์๋์ ๊ฐ์ด ๋งค๊ฐ๋ณ์ ํ์
์ โโฆโ์ ์ ์ด์ฃผ๋ฉด ๊ฐ๋ณ์ธ์๋ก ์ธ์๋์ด ๊ฐ์๋ฅผ ์ ํํ์ง ์๊ณ ์ธ์๊ฐ์ ์
๋ ฅ๋ฐ๊ณ , ์
๋ ฅ๋ฐ์ ์ธ์๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค!
func ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์๋ช
: ๋งค๊ฐ๋ณ์ ํ์
...)
func average(score: Int...) -> Double {
var total = 0
for r in score {
total += r
}
return (Double(total)/Double(score.count))
}
average(score: 10,20,30,40)
func printGreeting(to all: String...){
for name in all{
print("Hello \(name), welcome!")
}
}
printGreeting(to: "Woody","Buzz","Aliens","Mr.Potato Head"
/*
๊ฒฐ๊ณผ:
Hello Woody, welcome!
Hello Buzz, welcome!
Hello Aliens, welcome!
Hello Mr.Potato Head, welcome!
*/
๊ธฐ๋ณธ๊ฐ์ ๊ฐ๋ ๋งค๊ฐ๋ณ์
ํจ์์ ์ ์ ์ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํ๋ฉด ํด๋น ํจ์ ํธ์ถ ์ ์ธ์๊ฐ์ ์๋ตํ ์ ์๋ค. ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ด ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋์ด ํจ์๊ฐ ์คํ๋๊ณ , ํจ์ ํธ์ถ ์ ๊ธฐ๋ณธ๊ฐ์ด ์ ํด์ง ํ๋ผ๋ฏธํฐ์ ์๋ก ๊ฐ์ ์ฃผ๊ฒ๋๋ฉด ์๋ก ์ฃผ์ด์ง ๊ฐ์ด ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋์ด ํจ์๊ฐ ์คํ๋๋ค. (๋ฐ๋ผ์ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ฃผ๋ฉด ํจ์๋ ๋ ๊ฐ์ง ํ์ - ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์ / ์๋ก ๋๊ฒจ์ฃผ๋ ๊ฐ์ผ๋ก ๋์ - ์ผ๋ก ๋ชจ๋ ์์ฑ๋๋ค๊ณ ํ ์ ์๋ค.
func ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์ ํ์
= ๊ธฐ๋ณธ๊ฐ){
์คํํ ๋ด์ฉ
}
func divideNum(numerator: Double, denominator: Double, withPunctuation punctuation: String = "^_^"){
print("\(numerator)/\(denominator) equals \(numerator/denominator)\(punctuation)")
}
divideNum(numerator: 9.0, denominator: 3.0)
divideNum(numerator: 9.0, denominator: 3.0, withPunctuation: "!")
/*
๊ฒฐ๊ณผ : punctuation๋ถ๋ถ์ด ๋ฌ๋ผ์ง
9.0/3.0 equals 3.0^_^
9.0/3.0 equals 3.0!
*/
์ธ์์ ํ๋ผ๋ฏธํฐ
var error = "The request failed:"
func appendErrorCode(_ code: Int, toErrorString errorString: inout String){
if code == 400 {
errorString += "bad request."
}
}
appendErrorCode(400, toErrorString: &error)
//The request failed: bad request.
๋ณต์ ๋ฆฌํด๊ฐ - ํํ ์ฌ์ฉํ๊ธฐ ์์
func sortedEvenOddNumbers(_ numbers: [Int]) -> (evens: [Int], odds: [Int]){
var evens = [Int]()
var odds = [Int]()
for number in numbers {
if number % 2 == 0{
evens.append(number)
} else {
odds.append(number)
}
}
return (evens, odds)
}
let aBunchOfNumbers = [10,1,3,55,66,78,93,103]
let theSortedNumbers = sortedEvenOddNumbers(aBunchOfNumbers)
print ("Even numbers: \(theSortedNumbers.evens)")
print ("Odd numbers: \(theSortedNumbers.odds)")