1. ํจ์์ ์ธ
๊ธฐ๋ณธ
func ํจ์์ด๋ฆ (๋ณ์ : type, ๋ณ์ : type) -> return_type {
//code
return value
}
//ex (๋ํ๊ธฐ ํจ์)
func add (a : Int, b : Int ) -> Int {
return a+b
}
return โ
func name(a: Int, b: Int) -> Void {
//code
}
func name(a: Int, b: Int) {
//code
}
๋งค๊ฐ๋ณ์ โ
func name() -> return_type {
//code
return
}
2. ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ
๐ ๋ณ์ : type = ๊ธฐ๋ณธ๊ฐ
func add(a : Int, b: Int = 10) -> Int { // b๊ธฐ๋ณธ๊ฐ = 10
return (a+b)
}
๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ฉด ํจ์ ์ฌ์ฉ์์ ์๋ตํ ์ ์์ (์์ )
add(a : 10) // return 20
add(a : 10, b : 100) // return 110
3. ์ ๋ฌ์ธ์ ๋ ์ด๋ธ
์ฌ์ฉ์ ์ ์ฅ์์ ํจ์ ํธ์ถ ์ ๋งค๊ฐ๋ณ์์ ์ญํ ์ ์ข ๋ ์ ํํ ํ๊ณ ์ ํ ๋ ์ฌ์ฉํจ
์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ๋ณ์์ด๋ฆ ์ฒ๋ผ ์๋ฌด๊ฑฐ๋ ์ฌ์ฉํด๋ ๋จ โ๏ธ
to, from : external | friend, me : internal
func name(์ ๋ฌ์ธ์ ๋ ์ด๋ธ ๋ณ์์ด๋ฆ : type, ์ ๋ฌ์ธ์ ๋ ์ด๋ธ ๋ณ์์ด๋ฆ : type) -> return_type {
//code
return
}
//ex
func greeting(to friend : String, from me : String) {
print("Hello \(friend)! I'm \(me)")
}
๐ ํจ์ ๋ด์์๋ ๋ณ์์ด๋ฆ์ ์ฌ์ฉํ๊ณ , ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ ๋ฌ์ธ์ ๋ ์ด๋ธ์ ์ฌ์ฉํ๋ค.
greeting(to: "everyone", from: "sladuf") // "Hello everyone! I'm sladuf"
_(Wildcard Pattern)
4. ๊ฐ๋ณ ๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์์ ๊ฐ์๊ฐ ์ ํํ์ง ์์ ๋ ์ฌ์ฉํจ
๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ ํจ์๋น ํ๋๋ง ๊ฐ์ง ์ ์์
๐ ๊ฐ๋ณ ๋งค๊ฐ๋ณ์์ type๋ค์ ...์ ๋์ด์ฐ์ง ์๊ณ ๋ถ์ด๊ธฐ
func name(a: Int, b: Int...) -> return_type {
//code
return
}
//ex
func greeting(me: String, friends: String...) {
print("Hello \(friends)! I'm \(me)!")
}
greeting(me: "sladuf", friends: "juju", "mimi") // "Hello ["juju", "mimi"]! I'm sladuf!"
5. ํจ์์ ํ์ ํํ
swift๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํจ์๋ฅผ ๋ณ์, ์์ ๋ฑ์ ์ ์ฅํ ์ ์์
์ ์ธ๋ฐฉ๋ฒ
//์์์ ๋ง๋ค์๋ addํจ์๋ฅผ ์ฌ์ฉ
var add_sample : (Int, Int) -> Int = add(a:b:)
๐ ํ์ ์๋ต์ด ๋ถ๊ฐ๋ฅํ๋ค. return value๊ฐ ์์ผ๋ฉด Void ์ ์ธํ๋ฉด ๋จ
์ฌ์ฉ
๋ฐ์ดํฐ ํ์ ์ผ๋ก ํจ์๋ฅผ ์ฌ์ฉํ ๋๋ ๋งค๊ฐ๋ณ์ ์ด๋ฆ ์์ด ๋ฐ๋ก ์ฌ์ฉ๊ฐ๋ฅํจ
add_sample(10,10) // 20
๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉ
๋งค๊ฐ๋ณ์๋ฅผ ํตํด์๋ ์ ๋ฌ ๊ฐ๋ฅํจ
func printer(add_sample : (Int, Int) -> Int) {
print(add_sample(10,10)) // 20
}
printer(add_sample: add(a:b:))
'๐ Programming > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ์ด๊ฑฐํ(Enumerations) (0) | 2022.01.20 |
---|---|
[Swift] ์ ์ด๋ฌธ (์กฐ๊ฑด๋ฌธ / ๋ฐ๋ณต๋ฌธ) (0) | 2022.01.18 |
[Swift] collection type / ์ปฌ๋ ์ ํ์ (0) | 2022.01.14 |
[Swift] Optional๊ณผ unwrapping (0) | 2021.08.15 |
[Swift] ๋ณ์์ ์์ ๊ทธ๋ฆฌ๊ณ type (0) | 2021.08.15 |