-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generic에 대해 설명하시오. #23
Comments
제네릭은 '포괄적인'이라는 뜻을 가지며, 타입을 특정하지 않고도 함수와 타입을 만들 수 있게 합니다. 제네릭을 사용하면 훨씬 유용하고 재사용이 가능한 코드를 작성할 수 있고, 타입에 유연하게 대처할 수 있게 됩니다. Swift에서 Array, Dictionary, Set 등 표준 라이브러리의 대다수는 제네릭으로 선언되어 다양한 타입을 지정할 수 있습니다. 제네릭 타입의 매개변수를 넘기는 함수를 만들기 위해서는 함수 이름 뒤에 func printInput<T>(a: T, b: T) {
print("\(a), \(b)")
}
printInput(1, 2)
printInput("kim", "hye") 또한 https://spark-chive-e55.notion.site/Swift-Generic-52fd7515b6814b0285603c354439262e |
Generic 범용 타입더 유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것을 가능하게 해준다. Generic 함수제네릭을 사용하면 인자값의 타입만 다르고 수행하는 기능이 동일한 것을 하나의 함수로 만들 수 있다. func swapTwoValues<T>(_ a: inout T, _ b: inout T) {
let temporaryA = a
a = b
b = temporaryA
}
Generic 타입제네릭 함수에 이어서 제네릭 타입을 정의할 수 있다. struct Stack<Element> {
var items = [Element]()
mutating func push(_ item: Element) {
items.append(item)
}
mutating func pop() -> Element {
return items.removeLast()
}
} 만약 해당 타입이 특정 클래스를 상속받거나, 특정 프로토콜을 따라야 할 경우, func someFunction<T: SomeClass, U: SomeProtocol>(someT: T, someU: U) {
// function body goes here
} |
Generic(제네릭)은 중복을 피하면서 유연하고 재사용 가능한 함수와 타입을 작성할 수 있도록 해준다. 제네릭을 사용하려고 할 때에는 사용하려고 하는 함수 또는 타입 뒤에 꺽쇠(<>)를 붙이고 원하는 이름을 붙여주면 된다. 일반적으로 T, V, U 기호를 많이 사용한다. 중요한 것은 이 기호가 의미하는 것이 완전히 새로운 타입을 의미하는 것은 아니라는 점이다. 제네릭을 사용하게 되면 호출 시에 타입이 결정되게 된다. |
No description provided.
The text was updated successfully, but these errors were encountered: