
ํจ์
์์ ์ ๊ฐ์ฅ ์์ ๋จ์์ด์ ์ฝ๋์ ์งํฉ์ด๋ค. ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฐ๋ณต์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ํผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๋ค. ํจ์๋ฅผ ์์ฑํด ๋๊ณ , ํ๋ก๊ทธ๋๋ฐ ๋์ค ๋ฐ๋ณตํด์ ์ํํด์ผํ ์์ ์ด ์์ผ๋ฉด ํจ์๋ฅผ ํธ์ถํ๋ฉด์ ๋ฐ๋ณต์ ์ธ ํ๋ก๊ทธ๋๋ฐ์์ ๋ฒ์ด๋ ์ ์๋ค.
ํจ์์ ํฌ๊ธฐ๋ ์ ํด์ง ๊ฒ์ ์์ง๋ง, ๋๋ถ๋ถ ํ๋์ ๊ธฐ๋ฅ์ ์ํ ํจ์ ํ๊ฐ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข๋ค.
Swift์ ํจ์ ์ ์
func ํจ์๋ช
(ํ๋ผ๋ฏธํฐ ์ด๋ฆ: ๋ฐ์ดํฐ ํ์
) -> ๋ฐํ ํ์
{
return ๋ฐํ ๊ฐ
}
ex) ๋ ๊ฐ์ ๊ฐ์ ๋ํด์ฃผ๋ ํจ์๋ฅผ ์ ์ํด๋ณด์.
func sum(a: Int, b: Int) -> Int {
return a+b
}
// ํจ์ ์ ์ฉ
sum(a: 5, b: 3)
// prints 8
ex) ๋งค๊ฐ๋ณ์๊ฐ ์๋ hello ํจ์๋ฅผ ์ ์ํด๋ณด์.
func hello () -> String {
return "hello"
}
ex) ๋ฐํ๊ฐ์ด ์๋ ํจ์๋ฅผ ์ ์ํด๋ณด์. ๋ ๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์๋ค.
// 1. ๋ฐํ๊ฐ์ Void ๋ฃ์
func printName() -> Void {
return "hello"
}
// 2. ๋ฐํ๊ฐ์ ์์ ์ด๋ ๋จ.
func printName() -> {
return "asdf"
}
ex) ํจ์ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด์ ์ฌ์ฉํ ์ ์๋ค.
์๋์ ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ํจ์๋ฅผ ํธ์ถํ ๋ ๊ฐ์ ๋๊ฒจ์ฃผ์ง ์์๋ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ ์ ์๋ค. me๋ ๊ธฐ๋ณธ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ํจ์๋ฅผ ํธ์ถํ ๋ ์์จ์ฃผ์ด๋ ๋๋ค.
func greeting(friend: String, me: String = 'didu') {
print("Hello, \(friend)! I'm \(me).")
}
greeting(friend: "Andy")
// prints "Hello, Andy! I'm didu."
ex) ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ์ฌ์ฉํด์ ํจ์๋ฅผ ์ ์ํ๊ธฐ.
๊ธฐ๋ณธ ํํ๋ ์๋์ ๊ฐ๋ค. ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฌ์ฉ์ ์ ์ฅ์์ ๋งค๊ฐ๋ณ์์ ์ญํ ์ ์ข ๋ ๋ช ํํ๊ฒ ํ์ธํ ์ ์์ด์ ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋์์ง๋ค.
func ํจ์์ด๋ฆ(์ ๋ฌ์ธ์ ๋ ์ด๋ธ ๋งค๊ฐ๋ณ์ ์ด๋ฆ: ๋งค๊ฐ๋ณ์ ํ์
, ์ ๋ฌ์ธ์ ๋ ์ด๋ธ ๋งค๊ฐ๋ณ์ ์ด๋ฆ: ๋งค๊ฐ๋ณ์ ํ์
... ) -> ๋ฐํ ํ์
{
return ๋ฐํ ๊ฐ
}
โถ ์น๊ตฌ์๊ฒ ์ธ์ฌ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด๋ณด์.
func sendMessage(from myName: String, to name: String) -> String {
return "Hello \(name)!, I'm \(myName)."
}
sendMessage(from: "didu", to: "Minsoo")
//prints "Hello Minsoo, I'm didu."
์ฌ๊ธฐ์ ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ "From"๊ณผ "To" ์ด๋ค. ํจ์๋ฅผ ํธ์ถํ ๋ from ~~, to ~~ ํด์ฃผ๋ฉด, from์ผ๋ก ๋ค์ด์ค๋ ๋งค๊ฐ๋ณ์๊ฐ myName์ผ๋ก ์ ์๋๊ณ , to๋ก ๋ค์ด์ค๋ ๋งค๊ฐ๋ณ์๊ฐ name์ผ๋ก ์ ์๋ ๊ฒ์ด๋ค.
ex) ๊ธฐ์กด์ธ์ด์ฒ๋ผ ์ ๋ฌ์ธ์๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๋ฉด, ์์ผ๋ ์นด๋ ์๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ (์ธ๋๋ฐ _)
๋งค๊ฐ๋ณ์ ์์ ์ธ๋๋ฐ(_)๋ฅผ ์ ์ด์ฃผ๋ฉด ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ์ฌ์ฉํ์ง ์๋ ํจ์๋ฅผ ๊ตฌํํ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ์ ์ธํ ํจ์๋ฅผ ํธ์ถํ ๋๋ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ๋ฐ๋ก๋ฐ๋ก ์์ ์ด์ฃผ๊ณ ๊ฐ๋ง ์ ์ด์ ํจ์๋ฅผ ํธ์ถ ํ ์ ์๋ค.
func sendMessage(_ name: String) -> String {
return "Hello \(name)."
}
// ํจ์ ํธ์ถ
// ํธ์ถ ํ ๋ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๊ณ , ๊ฐ์ผ๋ก ๋ฐ๋ก ํธ์ถ ๊ฐ๋ฅ
sendMessage("didu")
// prints "Hello didu."
ex) ๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํ ํจ์
swift๋ ํจ์์ ๋ช ๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ๋ค์ด์ฌ์ง ๋ชจ๋ฅผ ๋, ๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ 0๊ฐ ์ด์์ ๊ฐ์ ๋ฐ์์ฌ ์ ์๊ณ , ๊ฐ๋ณ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์จ ๋งค๊ฐ๋ณ์๋ ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. ํจ์๋ง๋ค ํ ๊ฐ์ ๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
func sendMessage(me: String, friends: String...) -> String {
return "Hello \(friends)! I'm \(name)"
}
// ํจ์ ํธ์ถ
sendMessage(me: "didu", friends: "minsoo", "suzi", "ann", "andy")
// prints : Hello ["minsoo", "suzi", "ann", "andy"]! I'm didu."
// ๋ฐฐ์ด๋ก ๋๊ฒจ๋ฐ์!!!
'Swift > Swift BASIC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - guard ๊ตฌ๋ฌธ (guard๋ฅผ ์ฌ์ฉํ๋ ์ด์ ) (2) | 2022.01.14 |
---|---|
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์กฐ๊ฑด๋ฌธ (if, switch ๊ตฌ๋ฌธ) (0) | 2022.01.14 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - Collection types (Array, Dictionary, Set) (0) | 2022.01.11 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ๋ฐ์ดํฐ ํ์ ์ข ๋ฅ (0) | 2022.01.11 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์์์ ๋ณ์ ์ ์ธํ๊ธฐ (let, var ์ฐจ์ด์ ) (0) | 2022.01.11 |