[rust] 제네릭 이너 클래스
이번에는 Rust의 제네릭 이너 클래스에 대해 알아보겠습니다.
제네릭(Generic)
제네릭은 코드의 유연성을 높이고 재사용성을 높이는 데 도움을 주는데, 이는 여러 데이터 타입에서 동일한 코드를 사용할 수 있게 해줍니다.
struct Point<T> {
x: T,
y: T,
}
impl<T> Point<T> {
fn x(&self) -> &T {
&self.x
}
}
위의 코드에서 Point
구조체는 제네릭 타입 T
를 사용하여 정의되었습니다.
이너 클래스(Inner Class)
Rust는 이너 클래스 개념을 직접적으로 지원하지는 않지만, 제네릭을 사용하여 비슷한 패턴을 구현할 수 있습니다.
struct Container<T> {
item: T,
}
impl<T> Container<T> {
fn new(item: T) -> Container<T> {
Container { item }
}
fn get_item(&self) -> &T {
&self.item
}
// 이너 클래스처럼 동작하는 메서드
fn perform_operation(&self) {
println!("Performing operation with item: {:?}", &self.item);
}
}
위의 코드에서 Container
구조체는 제네릭 타입 T
를 사용하여 정의되었습니다. 따라서 이를 이너 클래스와 비슷하게 사용할 수 있습니다.
제네릭을 이용하면 Rust에서도 이너 클래스와 유사한 패턴을 구현할 수 있습니다.
이상으로 Rust의 제네릭 이너 클래스에 대해 알아보았습니다. 참고문헌을 확인하시면 더 많은 정보를 얻을 수 있습니다.