본문 바로가기
🍎iOS프로그래밍/겨울방학 특강

Swift문법 - Generic

by 둥둥동동# 2022. 1. 8.
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

 

 

 

 

 

참고자료

한성현 교수님의 유튜브 강의

https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

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

댓글