Rust 代碼指南
本地規則
- 使用
log!
進行調試輸出(使用println!
等進行輸出處理,這也是發布所必需的) - 未使用或內部變量/方法(私有且僅用於特定功能)必須以
_
為前綴。如果要避免與保留字沖突,請在末尾添加一個_
- 使用clippy。然而,有些規則是不合理的,所以你可以使用
#[allow(clippy::…)]
來忽略除「deny」之外的規則。
推薦代碼
- 定義和使用特定領域的枚舉而不是數字枚舉或布爾值
- 將訪問修飾符保持在最低限度。即使在發布時也要優先使用
pub(mod)
或pub(crate)
- 將 for 表達式中的可迭代對象顯式轉換為迭代器(
for i in x.iter()
而不是for i in x
) - 懶惰的評價。例如,如果
default
不是文字,請使用unwrap_or_else
而不是unwrap_or
不鼓勵使用代碼
- 大量使用返回類型重載。特別是使用大量非顯而易見的
.into
的代碼。這是因為類型推斷結果可能違反直覺。在這種情況下,建議使用from
代替 - 大量使用
Deref
。這有效地提出了與繼承相同的問題
根據上下文做出決策的代碼
- 定義未使用的輔助方法
- 大量使用
unwrap
和clone
。在某些情況下,沒有什麽比這樣做更好的了。
依賴關系
依賴關系應該盡可能地最小化,那些必要的依賴關系應該由Erg開發團隊來實現。只有當外部依賴很難實現或依賴於硬件時才允許使用。例如:libc
, winapi
),或者沒有外部依賴的crate(例如:unicode-xid
)。否則,它們可能被允許作為可選依賴項(例如https客戶端)。在任何情況下,都應選擇保養良好和廣泛使用的
此規則僅適用於Erg編譯器, Erg工具和庫可以自由添加它們自己的依賴項。