728x90

순서
Generic시작
Generic예시
Generic 시작
값을 나중에 정해두는 것으로 생각하면 좋습니다
Array, Dictionary 등이 Generic구조체로 선언되었습니다
일단 기능을 먼저 구현하고 호출될 때 타입이 결정 됩니다
Generic을 사용하면 같은 기능의 코드를 여러개 만들필요가 없습니다
아래의 코드는 똑같은 기능을 하지만 데이터 타입이 달라 두 개의 함수가 필요합니다
|
func myIntPrint(a:Int){
print(a)
}
func myDoublePrint(a:Double){
print(a)
}
|
cs |
제너릭을 사용하면 하나의 함수로 정의가능합니다
|
func myPrint<T>(a:T){
print(a)
}
|
cs |
Generic 예시
아래 구조체는 Int만 전달받을 수 있는 구조체 입니다
|
struct Stack1 {
var items = [Int]()
mutating func push(_ item: Int){
items.append(item)
}
mutating func pop() -> Int {
return items.removeLast()
}
}
var StackOfInt = Stack1()
StackOfInt.push(10)
print(StackOfInt.items)//[10]
|
cs |
하나의 코드로 다양한 타입의 인자를 받을 수 있게 되었습니다
|
struct Stack1 <T> {
var items = [T]()
mutating func push(_ item: T){
items.append(item)
}
mutating func pop() -> T {
return items.removeLast()
}
}
var StackOfInt = Stack1<Double>()
StackOfInt.push(10)
print(StackOfInt.items)//[10.0]
|
cs |
참고자료
한성현 교수님의 유튜브 강의
728x90
'🍎iOS프로그래밍 > 겨울방학 특강' 카테고리의 다른 글
| Swift문법 - 고차함수 (0) | 2022.01.13 |
|---|---|
| Swift문법 - 배열 Array (0) | 2022.01.09 |
| Swift문법 - error handling (0) | 2022.01.08 |
| Swift문법 - 옵셔널 체이닝 (0) | 2022.01.07 |
| Swift문법 - 열거형,구조체 (0) | 2022.01.06 |
댓글