본문 바로가기

App Dev/iOS

iOS Swift <T> Generic 제네릭 사용법

반응형

Generic이란?

제네릭이란 타입에 의존하지 않는 범용 코드를 작성할 때 사용한다

제네릭을 사용하면 중복을 피하고, 코드를 유연하게 작성할 수 있다

그래서 제네릭은 더 유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것을 가능하게 해 줍니다.

 

import UIKit

//제네릭 : 어떠한 자료 형이든 받는다.
struct MyArray<T>{
    //제네릭을 담은 빈 배열
    var elements : [T] = [T]()
    
    init(_ elements : [T]){
        self.elements = elements
    }
}


struct Friend{
    var name : String
}

struct PpakCoder {
    var name : String
}

var mysomeArray = MyArray([1,2,3])

print("mySomeArray : \(mysomeArray)")

var mystringArray = MyArray(["가" , "나", "다"])

print("mySomeArray : \(mystringArray)")


let friend_01 = Friend(name : "철수")
let friend_02 = Friend(name : "영희")
let friend_03 = Friend(name : "수잔")

var myfiendArray = MyArray([friend_01,friend_02,friend_03])

print("myfiendArray : \(myfiendArray)")

 

[결과]

mySomeArray : MyArray<Int>(elements: [1, 2, 3])
mySomeArray : MyArray<String>(elements: ["가", "나", "다"])
myfiendArray : MyArray<Friend>(elements: [__lldb_expr_81.Friend(name: "철수"), __lldb_expr_81.Friend(name: "영희"), __lldb_expr_81.Friend(name: "수잔")])

 

보면 결국 어떠한 형의 값을 받아도 소화할 수 있는 상태로 만드는 것을 제네릭이라고 볼 수 있다.

타입에 구애 받지 않는 구조체 , 클래스 , 함수 등등 만들 수 있다. 

 

반응형