[문법] Generic

2023. 8. 3. 16:18Swift

320x100
제네릭(generic)
여러 유형에 대해 작동하는 코드를 작성하고 해당 유형에 대한 요구 사항을 지정합니다.

Generic 코드를 사용하면 정의한 요구 사항에 따라 어떤 유형에서도 작동할 수 있는 유연하고 재사용 가능한 함수 및 유형을 작성할 수 있습니다. 중복을 피하고 의도를 명확하고 추상적인 방식으로 표현하는 코드를 작성할 수 있습니다. 제네릭은 스위프트의 가장 강력한 기능 중 하나이며, 스위프트 표준 라이브러리의 많은 부분이 제네릭 코드로 구축되어 있습니다.

사실, 당신은 그것을 깨닫지 못했더라도 언어 가이드를 통해 제네릭을 사용해 왔습니다. 예를 들어, 스위프트의 배열과 사전 유형은 모두 제네릭 컬렉션입니다. 당신은 Int 값을 보유하는 배열을 만들 수도 있고, String 값을 보유하는 배열을 만들 수도 있고, 실제로 스위프트에서 만들 수 있는 다른 유형의 배열을 만들 수도 있습니다. 마찬가지로, 당신은 지정된 유형의 값을 저장하기 위해 사전을 만들 수 있고, 그 유형이 무엇일 수 있는지에 대한 제한은 없습니다.

출처 : https://docs.swift.org/swift-book/documentation/the-swift-programming-language/generics/
struct MyArray<SomeElement>{ // SomeElement는 형태가 없는 것
    // Generic을 담은 빈 배열
    var elements : [SomeElement] [SomeElement]()
    init(_ elements: [SomeElement]){
    	self.elements = elements
    }
}

struct Friend{
    var name: String
}

struct PpakCoder{
    var name: String
}

var mySomeArray = MyArray([1,2,3])
print(mySomeArray)	//MyArray<Int>(elements: [1,2,3])

var myStringArray = MyArray(["가","나","다"])
print(myStringArray)	//MyArray<String>(elements: ["가","나","다"])

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

var myFriendsArray = MyArray([friend_01, friend_02, friend_03])
print(myFriendsArray)
//MyArray<Fried>(elements: [__11db_expr_1.Friend(name: "철수"),__11db_expr_1.Friend(name: "영희"),__11db_expr_1.Friend(name: "수잔")])

 

출처 : 개발하는 정대리 스위프트 기초 문법 인프런 강의
728x90

'Swift' 카테고리의 다른 글

[문법] inout  (0) 2023.08.14
[문법] Closure  (0) 2023.08.04
[문법] 함수의 매개변수  (0) 2023.08.03
[문법] Property Observer  (0) 2023.08.03
[문법] Class vs Struct  (0) 2023.08.03