📖 Generic (제네릭)
📌 Generic이란
Generic (제네릭) 은 어떠한 자료형이든 받고 싶을 때 사용하는, 범용 코드를 작성할 때 사용합니다.
이로인하여, 유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것이 가능해집니다.
📌 제네릭 함수
제네릭 은 <> 을 통해 나타내고, 이 안에 타입처럼 사용할 이름을 넣어주면 됩니다.
(Type Parameter의 약자인 T를 주로 사용합니다.)
또한, 대문자 카멜 케이스로 이름 짓습니다. 대문자로 된 이름은 값(value)이 아니라 타입(type)을 의미합니다.
ex)
struct MyArray<SomeElement> {
// 제네릭을 담은 빈 배열
var elements : [SomeElement] = [SomeElement]()
// 생성자 자체는 만들지 않아도 되지만, 편의를 위해 생성
init(_ elements: [SomeElement]) { // 호출할 때, 이름을 넣지 않아도 된다
self.elements = elements
}
}
💬 다양한 type을 예로들어보겟습니다 .
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: "빡코더"), "나", "다"])
'IOS - Swift' 카테고리의 다른 글
Swift 기본문법 - 상속 (0) | 2022.09.15 |
---|---|
Swift 기초문법 - Closure (0) | 2022.09.14 |
Swift 기초문법- struct와 class의 차이 (0) | 2022.09.14 |
swift 기초문법 - enum (0) | 2022.09.12 |
swift 기초문법 - 콜렉션과 foreach (0) | 2022.09.12 |