人作了一個實際性的projectgit
voik安全
討論 Read moreapp
概要:async
Box<dyn Fn*>
系列已經實現了Fn*
traitside
支援將閉包強制轉換為unsafe函數指針工具
dbg!() 支擾無參數調用性能
fn main() {
let condition = true;
if condition {
dbg!();
}
}
獲得 [src/main.rs:5]ui
新增 copysign 給浮點數 f32 f64,這個函數能夠將另外一個浮點數的正負號複製給本身,但不包含數值spa
fn main() {
assert_eq!(3.5_f32.copysign(-0.42), -3.5);
}
Range 新增了下面函數命令行
fn main() {
if (0..=10).contains(&5) {
println!("Five is included in zero to ten.");
}
}
Range::contains
RangeFrom::contains
RangeTo::contains
RangeInclusive::contains
RangeToInclusive::contains
RefCell 新增了函數
Ref::map_split
RefMut::map_split
RefCell::replace_with
ptr::hash 能夠用指針位置 hash,而非指針裡的值
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};
use std::ptr;
let five = 5;
let five_ref = &five;
let mut hasher = DefaultHasher::new();
ptr::hash(five_ref, &mut hasher);
let actual = hasher.finish();
let mut hasher = DefaultHasher::new();
(five_ref as *const i32).hash(&mut hasher);
let expected = hasher.finish();
assert_eq!(actual, expected);
新增 Option::copied 來作複製 跟 Option::cloned 差很少,只是會移除 mut
let mut x = 12;
let opt_x = Some(&mut x);
assert_eq!(opt_x, Some(&mut 12));
let copied = opt_x.copied();
assert_eq!(copied, Some(12));
Read more
一個好用的工具,讓你能夠快速的編譯執行單個rust文件,而且能夠支持第三方crate。再也不須要把整個編譯項目目錄建立好
Read more
支持await/async語法
Read more
一個使用Rust加速Ruby程序的案例,以i18n gem爲示例講述。
Read More
他說的很對,Rust近兩年確實是開啓了一場轟轟烈烈的命令行大替換運動。可是不是悲劇呢?
按他的說法:Rust產出的這個命令行工具大小基本是4MB以上,性能要59ms,因此,這個太悲劇了。
拿Rust編寫的替代ls命令的exa來講,brew安裝大小是1.4MB,其實也沒超過2MB。9012年了,你的磁盤空間就這麼不夠用嗎,都幹啥了?運行一次的時間我沒測過,但我以爲就算真的是59ms我也是能夠接受的,由於在個人反應時間以外,並無多卡。我在本地嘗試用exa列出TiKV(算得上一個大型項目了)的樹形列表,也沒有感受到有卡頓。因此悲劇在哪?
軟件寫出來是讓人用的吧?
exa的介紹第一句話就是: You list files hundreds of times a day. Why spend your time squinting at black and white text? 你天天列出數百次文件,爲何你要花時間眯着眼睛看黑白文字?
exa提供了不少功能,其中,高亮顯示文本(區分各類元數據、文件、目錄、或其餘格式,好比symlinks),是大多數Rust編寫的命令行工具的底線。這是Rust社區,Rust文化的體現,就是讓你們感覺到更好的「人體工程學」。除了高亮顯示,還有不少功能,好比支持git、擴展屬性等。
因此,爲何要重寫exa呢?是爲了給你們節省時間,提高工做效率啊,同志們!
一樣,有不少優秀的Rust重寫的命令行工具,好比ripgrep,你怎麼不說說它的搜索性能呢?
說了這麼多,主要是想說明:
用Rust重寫或者新開發的命令行App,是爲了讓我們這個世界更加安全、美好。這個重寫,並非盲目的。在須要安全、須要性能的地方,也不會含糊。你們都試試新工具吧。