【Rust日報】2020-11-21 使用 const 泛型的物理單位

2020-12-10 騰訊網

使用 const 泛型的物理單位

就像一個具有更好的錯誤消息的 uom!

#![feature(const_generics, const_evaluatable_checked)]

useconst_unit_poc::values::;

letdistance =1.0* m;

letmass =18.0* kg;

letforce = distance * mass / (1.8* s *2.0* s);

assert_eq!(force,5.0* N);

letmutmutable_distance =3.2* m;

mutable_distance -=0.2* m;

mutable_distance +=2.0* m;

assert_eq!(mutable_distance,5.0* m);

crate 連結,https://docs.rs/const_unit_poc/1.0.0/const_unit_poc/

Knurling-rs

Knurling-rs,是用於開發和調試用於嵌入式系統的 Rust 軟體。第七次的 changelog:

進入 crates.io,是測試工具,可以用於編寫在微控制器上運行的單元測試。

發布了 v0.1.1 和 v0.1.5

Github連結,https://github.com/knurling-rs

Lunatic

Lunatic,用於構建使用 WebAssembly 實例作為 actors 的 Actor 系統平臺。它在很大程度上受到 Erlang 的啟發,可以從可編譯為 WebAssembly 的任何語言中進行定位。當前只有 Rust 的綁定可用。

示例:

uselunatic::;

fnmain() {

letchannel = Channel::new();

letvec:Vec = (..1_000).collect();

foriinvec.iter() {

Process::spawn((*i, vec.clone(), channel.clone()), child).unwrap();

}

for_invec.iter() {

let(i, sum) = channel.receive();

println!("Sum until {}: {}", i, sum);

}

}

// Child process calculates the sum of numbers of context.1 until context.0 index.

fnchild(context: (i32,Vec, Channel)) {

leti = context.;

letvec = context.1;

letchannel = context.2;

letsum_until_i:i32= vec[..=iasusize].iter().sum();

channel.send((i, sum_until_i));

}

該應用程式產生1000個子進程,並在每個子進程中計算從0到i的數字總和,然後將結果發送回父進程並進行列印。

Github連結,https://github.com/lunatic-lang/lunatic

【視頻】Rust Github 模版

使用 Rust GitHub 模板,可以立即創建一個託管在 GitHub 上的 Rust 項目。包括持續集成,持續部署和文檔!

視頻連結,https://www.youtube.com/watch?v=meAz2RQMHvM

介紹文章連結:https://rust-github.github.io/

From 日報小組 洋芋

社區學習交流平臺訂閱:

相關焦點

  • 【Rust日報】 2019-11-15 RustyBox 一個完全用rust重寫的 BusyBox
    RustyBox 一個完全用rust重寫的 BusyBox真的是很猛busybox是linux開發者最常用的一套cmd
  • Rust 1.48.0 發布 - OSCHINA - 中文開源技術交流社區
    具體更新內容如下:Easier linking in rustdocRustdoc 是 Rust 發行版中包含的庫文檔工具,可以讓你用 Markdown 編寫文檔。在 1.48.0 版本中,Rustdoc 能夠使用 item 路徑作為連結直接連結到 Markdown 文檔中的其他 rustdoc 頁面。
  • 【Rust日報】2020-03-10 - A C# programmer 嘗試 Rust - Part 1
    https://github.com/sphqxe/NATS-WebUICloudsmith 支持直接上傳 Cargo 包到他們的雲平臺可以直接使用 cargo publish 上傳。commercial/licensed basis if necessary on the same basisSupports assets all common languages and formats (Rust and Cargo being just one of dozens of supported formats)https://blog.cloudsmith.io/2020
  • 【Rust日報】 Rust 2021-穩定性
    文章連結,https://jackh726.github.io/rust/2020/10/01/rust-2021.htmlRust如何使我們監控30k/min的API調用在Bearer,我們是一個多語言的工程師團隊。無論是交流的語言,還是變成的語言。我們的技術棧是由Node.js,Ruby,Elixir,以及我們代理庫支持的所有語言之外的其他語言寫的服務組成。
  • [洛穀日報第21期]你不知道的CPP11新語法
    隨著C++11的發布,C++這門語言有了本質上的提升。C++14和C++17的相繼推出,更是讓C++這門語言達到了一個新高度。新的標準庫設施,新的語法,讓我們得以書寫更加安全、便捷、高效的程序。使用constexpr而非const來聲明常量,讓編譯器來幫你檢查常量是不是每次程序執行都為同一個值。省事好幫手——auto類型指示符適用度:★★★★★有些類型名字太長,難以拼寫,浪費時間。怎麼辦?
  • Java泛型解析,了解泛型使用
    如:使用泛型Object 類型數據使用時需要事先知道參與計算的具體類型,有時候我們很難判斷需要什麼類型,如果寫錯了,那就會報錯。為了少寫代碼,且不出錯,於是就引入了泛型。通過泛型改造上面的類:列印結果:使用泛型後就不用強制轉換數據類型,代碼也變得通用了。
  • Java之使用泛型與未使用泛型的區別
    各位小夥伴們大家好,在之前的文章中,小編有介紹過Java之泛型的概念,這次小編要介紹的是,Java程序中,使用泛型與未使用泛型的區別。代碼如下:public class Demo01Generic {public static void main(String[] args) { show01(); show02(); } /*創建集合對象,使用泛型好處:1.避免了類型轉換的麻煩,存儲的是什麼類型的數據,取出的就是什麼類型的數據 2.把運行期異常
  • 【Rust日報】2020-08-13 關於群集(Bevy)引擎ECS框架中system的語法糖是怎麼實現的
    pub trait IntoQuerySystem<Commands,R,Q> { fn system(self) -> Box<dyn System>;}有了trait之後只需要把trait實現給我們可能會調用的函數,一個一個函數的去實現肯定是不可能的,翻看群集的這部分源碼能夠看到大量的使用了宏
  • 泛型:泛型的定義(類、接口、對象)、使用、繼承
    實現/繼承泛型接口/泛型類:    1) 定義泛型和使用泛型的概念:主要區別就是定義和使用         i. 那Java的方法做類比,Java的方法在定義的時候使用的都是形參(虛擬參數),但是在調用方法(使用方法)的時候必須傳入實參;         ii.
  • Rust 1.46.0 穩定版發布 - OSCHINA - 中文開源技術交流社區
    Rust 1.46.0 發布了,此版本帶來了以下更新內容:改進 const fn現在可以在 const
  • 【Rust日報】2020-09-25 構建一個Rust運行時反射系統(第一篇)
    為了方便大家了解它們的Polar語言,我在他們官網摘了一小段:allow(actor: String, "GET", _expense: Expense) if actor.endswith("@example.com");連結:https://www.osohq.com/post/rust-reflection-pt-1Building
  • 【Rust日報】 2019-08-28:Rust異步代碼的優勢:相比於其他語言更加容易調試
    Part I: https://medium.com/dwelo-r-d/using-c-libraries-in-rust-13961948c72a Part II:https://medium.com/dwelo-r-d/wrapping-unsafe-c-libraries-in-rust-d75aeb283c65使用async/await構建高性能TCP客戶端#async
  • 初學心得 | Rust學習筆記
    作為一種現代程式語言,大量使用了泛型,但是也帶來代碼可讀性較差的問題。相信所有的初學者都會對層層包裹的泛型參數及其限定感到頭痛,可能需要花費一段時間來適應一下。而枚舉類型 Option<T>替代Null,錯誤處理 Result<T,E>也是有特色的地方,然也導致相關的代碼略顯臃腫(個人體會,完成相同功能,Rust 代碼篇幅總是較之 Go 代碼明顯更長)。
  • 原來C語言還可以這樣實現「泛型編程」!
    在回答標題問題之前,先了解下什麼是泛型編程。泛型編程(generic programming)是程序設計語言的一種風格或範式。泛型允許程式設計師在強類型程序設計語言中編寫代碼時使用一些以後才指定的類型,在實例化時作為參數指明這些類型。
  • Java泛型簡單的使用
    Java裡面的泛型在實際開發中運用的很多,學過C++的同學一定知道C++的模板,而Java中的泛型,一定程度上和它還是挺像的。
  • Rust search extension 0.7 發布!快速搜索 Rust 文檔、屬性和庫的...
    Reddit帖子:Announcing rust-search-extension v0.7! Search std docs, crates, error codes, and attributes in your address bar instantly!
  • August 2020-days
    函數轉換為const函數的crate庫的介紹文檔有提到了這個庫的一些原理。/blog/2020/08/11/this-week-in-rust-351/Rapier 是100%使用 Rust 開發的物理引擎,可用於遊戲、動畫、機器人學的模擬。
  • Rust語言2020調查報告發布:Rust 太難,生命周期更難
    Rust 官方博客發布了 2020 年度的 Rust 調查報告。此次調查共收到以 14 種不同語言完成的 8323 份回復,使用英語的受訪者人數佔比最高,為 75%,其次是 5.4% 的中文受訪者以及 5.3% 的俄語受訪者。基於此,官方計劃從這語言方面改進 Rust 社區,為那些不希望或無法使用英語的人改善 Rust 社區狀況。
  • [譯]聊聊C#中的泛型的使用
    因此,從性能的角度來看,裝箱和拆箱過程在泛型中具有非常重要的意義,因為這個過程如果不使用泛型的話會耗費更多地資源。泛型類可以通過在類名後面加上符號來定義泛型類。這裡沒有強制必須將「T」字放在泛型的定義中。您可以在TestClass <>類聲明中使用任何單詞。
  • 【Rust日報】2020-08-15 Rust Nightly 標準庫文檔已涵蓋了每個關鍵字
    詳細可查看這三個連結:標準庫:https://doc.rust-lang.org/stable/std/#keywordsunsafe 關鍵字:https://github.com/rust-lang/rust/pull/73943原始類型關鍵字:https://github.com/rust-lang/rust/issues/34601學習Rust,沮喪?