Rust 1.80新增延遲初始化型別,大幅提升資源管理效能
支付動態 · 2024-07-26

Rust 1.80新增LazyCell和LazyLock延遲初始化型別,還強化模式對比靈活性,並在套件管理器Cargo改進cfg檢查,提升整體開發效率和程式品質

Rust 1.80加入了多項提高效率、程式碼安全性和靈活性的功能更新,標準函式庫新增LazyCell和LazyLock延遲初始化型別,並且強化模式(Pattern)比對的靈活性,而Rust套件管理器Cargo現在則會檢查所有已知的cfg名稱和值,並且偵測錯誤配置。

Rust新加入的LazyCell和LazyLock型別簡化延遲初始化的實作,使得程式在需要時才進行計算和資源分配的程式碼,變得更加容易編寫。延遲初始化操作對於需要按需載入資源的情境特別有用,能夠在需要時才分配資源,這將可大幅提高大型應用的啟動速度和執行效率,從資源管理的角度來說,對於需要大量記憶體或是其他系統資源的物件,可以更有效地管理資源,有助於減少程式整體記憶體使用量。

官方現在直接在標準函式庫中加入LazyCell和LazyLock,讓實作延遲初始化功能更簡單,消除需要的樣板程式碼,同時也降低了對外部相依項目的依賴,簡化專案管理工作。

LazyLock與LazyCell的差異在於,LazyLock為執行緒安全,相較於LazyCell只適用於單執行緒環境,LazyLock實作了Sync trait,因此可在多執行緒環境中安全使用,不過也由於LazyLock需要處理執行緒同步,因此會產生額外的效能開銷。

Rust 1.70加入了同樣用於延遲初始化的OnceCell和OnceLock型別,不過LazyCell和LazyLock本身就包含了初始化邏輯,不像是OnceCell、OnceLock需要外部方法來提供初始化邏輯,因此LazyCell和LazyLock在使用上更為簡單,不過當初始化邏輯需要依據執行條件變化,則OnceCell和OnceLock更加靈活。

Rust 1.80透過檢查cfg名稱和值,來強化程式碼的正確性和可靠性。該功能可以偵測和警告開發者可能的cfg名稱或值的拼寫錯誤,避免因為錯誤條件編譯配置所導致的問題,確保開發者只使用已定義和預期的cfg條件,減少意外行為。

由於cfg檢查功能在編譯階段就能發現潛在的配置問題,因此大幅降低在執行時才發現錯誤的風險,提高了整體的程式碼品質和開發效率。

Rust 1.80還引入了一個能夠擴展模式比對範圍的新功能,開發者已可以使用排他範圍(Exclusive Range)語法a..b或..b,其提供類似Range和RangeTo表示式的功能,該表示式在處理連續範圍時更方便,允許範圍之間沒有間格或是重疊,使某些類型的程式碼更清楚且不容易出錯,維持語言的一致性和表達性。

熱門文章
西班牙監管機構警告在線賭博平臺存在身份盜竊行為
合規與政策
印第安納州在線賭場法案在眾議院委員會停滯不前
合規與政策
橫跨全球6個城市,灰度8場派對邀你共看世界盃,重塑高質量社交新場景
灰度頭條
新澤西州7月博彩收入創6.06億美元新高,頒布禁令
合規與政策
JILI 宣佈與全球板球傳奇 AB de Villiers(ABD)達成重磅戰略合作
體育遊戲
印度最高法院受理公益訴訟,要求全國禁封「偽裝」成社交遊戲的賭博平台
合規與政策
巴西擬將博弈稅率提高至24% 稅收將用於社保與醫療領域
合規與政策
斯里蘭卡博弈產業大轉型,官方:劍指南亞拉斯維加斯
合規與政策
哈薩克計劃對線上賭場促銷活動進行處罰
合規與政策
英國確認各垂直行業的賭博稅稅率
合規與政策
越南博彩管控逐步放寬,惟本土需求仍顯乏力
東南亞資訊
越南在線博彩業政策收緊 催生市場新機遇
東南亞資訊
灰度在iGB L!VE 2026展位T70和你相約7月,一起點燃倫敦的熱情!
灰度頭條
菲律賓博彩技術賽道迎來新變局,B2B 供應模式加速滲透
東南亞資訊
菲律賓網絡賭博和加密貨幣仍構成持續的洗錢風險
東南亞資訊
首頁
遊戲
合作
發現
我的