[swift] 10. Generic

몽이 누나·2022년 4월 22일
0

swift 기초 문법

목록 보기
10/17
post-thumbnail

📖 Generic (제네릭)

📌 Generic이란

Generic (제네릭) 은 어떠한 자료형이든 받고 싶을 때 사용하는, 범용 코드를 작성할 때 사용합니다.
이 특성 덕에 코드를 유연하게 작성할 수 있게 합니다.


📌 제네릭 함수

제네릭<> 을 통해 나타내고, 이 안에 타입처럼 사용할 이름을 넣어주면 됩니다.
(T를 많이 넣으며, Type Parameter의 약자입니다.)

ex)

struct MyArray<SomeElement> {
    
    // 제네릭을 담은 빈 배열
    var elements : [SomeElement] = [SomeElement]()
    
    // 생성자 자체는 만들지 않아도 되지만, 편의를 위해 생성
    init(_ elements: [SomeElement]) { // 호출할 때, 이름을 넣지 않아도 된다
        self.elements = elements
    }
}

💬 다양한 타입을 print 해봅시다.

var mySomeArray = MyArray([1,2,3])
print("mySomeArray : \(mySomeArray)")

var myStringArray = MyArray(["가", "나"])
print("myStringArray : \(myStringArray)")

>>> mySomeArray : MyArray<Int>(elements: [1, 2, 3])
myStringArray : MyArray<String>(elements: ["가", "나"])

💬 구조체를 선언하고 print 해봅시다.

struct Friend {
    
    var name : String
    
}

let friend_01 = Friend(name: "몽이")
let friend_02 = Friend(name: "몽이 누나")

var myFriendsArray = MyArray([friend_01, friend_02, "나", "다"])
print("myFriendsArray : \(myFriendsArray)")

>>> myFriendsArray : MyArray<Any>(elements: [__lldb_expr_60.Friend(name: "몽이"), __lldb_expr_60.Friend(name: "몽이 누나"), "나", "다"])

profile
몽이 누나의 코딩 일기

0개의 댓글