pub struct Queue<T> {
older: Vec<T>,
younger: Vec<T>
Queue<T>는 임의의 요소 타입 T에 대해서라고 읽으면 된다. 예를들어
Queue<String>에서 T의 타입은 String타입
Queue<char>에서 T의 타입은 char타입
Vec 벡터타입도 제네릭스트럭트이다.
impl 블록은 함수의 집합체이고 스트럭트 타입의 메서드가 된다.
pub struct Queue<T> {
older: Vec<T>,
younger: Vec<T>,
}
// struct 필드에 접근할 때는 .을 붙인다.
impl<T> Queue<T> {
// Self는 자신의 대상이되는 타입을 가르킨다 여기서 Self가 가르키는것은 Queue<T>이다.
pub fn new() -> Self { //객체를 사용하기위해 생성자 함수 정의
Queue {
older: Vec::new(),
younger: Vec::new(),
}
}
pub fn push(&mut self, t: T) {
self.younger.push(t);
}
pub fn is_empty(&self) -> bool {
self.older.is_empty() && self.younger.is_empty()
}
}
fn main() {
let mut q = Queue::new(); // 연관함수 new를 이용해 객체 생성
let mut r = Queue::new(); // 연관함수 new를 이용해 객체 생성
q.push("CAD");
r.push(0.74);
q.push("BTC");
r.push(13764.0);
}
pub struct를 붙여 외부에서 필드에 접근할 수 있게 했다. 메서드안에 있는 생성자 함수를 정의하고 new()를 이용해 객체를 생성한다.
https://www.yes24.com/Product/Goods/116789691
'Rust' 카테고리의 다른 글
Rust Closure (0) | 2024.01.24 |
---|---|
러스트 impl 트레이트 반환타입 (0) | 2024.01.16 |
러스트 모듈(pub mod) (0) | 2024.01.09 |
러스트 제네릭(generic) 함수 정의 (0) | 2024.01.01 |
러스트 프로그래밍 - 스코프를 벗어나면 drop (0) | 2023.12.18 |