ํ์ ์ ์์กดํ์ง ์๋ ๋ฒ์ฉ์ฝ๋๋ฅผ ์ํด์ ์กด์ฌ ํ๋ฉฐ ์ด๋ค ํ์ ์ด ๋ค์ด์๋ ๊ด์ฐฎ์ ์ฝ๋์ด๋ค.
func ํจ์์ด๋ฆ<ํ์
์ด๋ฆ>(input: ์ค์ ์
๋ ฅ๋ฐ์ ํ์
) {
input -> ํ์
๋ณ์
}
์๋ฅผ ๋ค์ด Int๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด์ ๊ฐ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ํ๋ฒ ๋ง๋ค์ด ๋ณด์
struct MyStack {
var data: [Int] = []
mutating func insertValue(input: Int) {
data.append(input)
}
func showData() {
data.forEach { item in
print(item)
}
}
}
๊ทธ๋ฐ๋ฐ, Intํ์ด ์๋ String, Float๋ฑ ๋ค๋ฅธ ๊ฐ์ ๊ฐ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค๋ฉด ๊ณ์ํด์ ๋ง๋ค์ด์ผ ํ ๊น?
์ด ๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด Generic์ด๋ค.
struct MyGenericStack<T> {
var data: [T] = []
mutating func insertValue(input: T) {
data.append(input)
}
func showData() {
data.forEach { item in
print(item)
}
}
}
์ด๋ ๊ฒ ๋ง๋ ๋ค๋ฉด ์ฌ๋ฌ๋ฒ ๋ง๋ค ๋ป ํ๋ ๊ฑธ ํ ์ฝ๋๋ก ํด๊ฒฐ ํ ์ ์๊ฒ ๋๋ค.