Rust: 生命週期( Lifetimes )

生命週期 ( lifetimes ) 會確保我們在需要引用的時候,它們都是有效的。 在 Rust 中,每個引用都是有生命週期的,簡單來說就是它的有效範圍。在大多情況下,生命週期都是隱藏且可以推導出來的,如同型別一樣也都是可以推導出來的。當型別有很多種可能的情況下,就要詮釋型別,同樣在生命週期下,引用以不同方式關聯的話,就要詮釋生命週期。 ...

February 10, 2023 · 5 min · Chen Yu Fan

Rust: 特徵( Trait )

特徵( trait ),是定義特定型別與其他型別共享的功能。可以使用特徵界限 ( trait bounds ) 來指定泛型型別為擁有特定行為的任意型別。 特徵類似於其他語言常稱作介面 ( interfaces ) 的功能,但還是有些差異。 ...

February 1, 2023 · 4 min · Chen Yu Fan

Rust: 泛型( Generics )

泛型 ( generics ),實際型別或屬性的抽象表示。舉例來說,String 和 i32 這兩個不同型別的資料都可以被存到 Vec 結構體建立的實例中,不需要針對型別來做分別,只要使用 Vec<String> 或 Vec<i32>,這是因為 Vec 結構體使用了泛型。 泛型就是 參數多型 ( parametric polymorphism ),在定義型別或函數的時候不去明確指定具體的型別,而是以參數的形式來傳入型別,這可以讓程式設計更為彈性。 以下先來看泛型在各個地方中如何定義。 ...

January 31, 2023 · 4 min · Chen Yu Fan

Rust: 所有權( Ownership )

在一開始撰寫文章時,本來想以寫比較久的 TypeScript 來做部落格的開頭文章,但在過年前接觸到 Rust 這個程式語言,就順勢把最近學到的東西放上來。等到把在 TypeScript 遇到的問題整理一下再寫成一個系列放上來。 所有權 ( ownership ) 是 Rust 用來 管理程式記憶體的一系列規則,讓 Rust 不需要垃圾回收 ( Garbage collection ) 就可以保障記憶體的安全。 ...

January 30, 2023 · 7 min · Chen Yu Fan