影片地址:www.bilibili.com/video/av78062009/
相關原始碼:github.com/anonymousGiga/Rust-link...
本節開始,我們將設計一個安全的雙端佇列。雙端佇列的佈局我們主要使用到Rc和RefCell。
Rc: 透過Rc指標可以共享資料。Rust語言因為有所有權的概念,所以,資料失去了所有權之後,後面就無法使用該資料,而Rc就是解決此類問題的。而Rc指標指向的值是隻讀性質的,不能夠修改。
RefCell:透過RefCell指標可以改變不可變的值。Rust一般變數定義為immutable的時候,是不能修改其值的,但是,RefCell指標能做到。
透過Rc和RefCell,我們可以定義我們的雙連結串列,程式碼如下:
use std::rc::Rc;
use std::cell::RefCell;
pub struct List<T> {
head: Link<T>,
tail: Link<T>,
}
type Link<T> = Option<Rc<RefCell<Node<T>>>>;
struct Node<T> {
elem: T,
next: Link<T>,
prev: Link<T>,
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結