当前位置: 首页 > news >正文

深圳住建局工程交易中心手机优化管家

深圳住建局工程交易中心,手机优化管家,仙居网站建设,网站建设图片qq群1.43.0稳定版 项(item)片段 在宏中,可用项片段把项插值到特征,实现和extern块的块体中.如: macro_rules! mac_trait {($i:item) > {trait T { $i }} } mac_trait! {fn foo() {} }这生成: trait T {fn foo() {} }围绕原语的推导类型 改进了围绕原语,引用和二进制操作的推…

1.43.0稳定版

项(item)片段

中,可用片段把插值到特征,实现extern块的块体中.如:

macro_rules! mac_trait {($i:item) => {trait T { $i }}
}
mac_trait! {fn foo() {}
}

这生成:

trait T {fn foo() {}
}

围绕原语的推导类型

改进了围绕原语,引用和二进制操作的推导类型.如下片段,

let n: f32 = 0.0 + &0.0;

Rust1.42中,你会收到错误,说"嘿,不知道如何加f64&f64,而结果是f32.该算法现在正确地决定0.0&0.0都应该是f32.

测试新的Cargo环境变量

为了帮助整合测试,Cargo设置一些新的环境变量.
假设正在处理叫"cli"的命令行项目.如果正在编写整合测试,想调用该cli二进制文件并查看它的作用.
运行测试基准测试时,Cargo会设置可在测试中使用的叫CARGO_BIN_EXE_cli的环境变量:

let exe = env!("CARGO_BIN_EXE_cli");

这使得调用cli更加容易,因为现在可直接调用.

更改库

现在,不必导入模块,可直接在浮点数和整数上使用关联常量.也即,现在不必用 std::u32;用 std::f32;,就可编写u32::MAXf32::NAN.

有个可重新导出Rust原语类型的新的原语模块.编写宏并想确保类型不会被遮蔽时,很有用.

此外,还稳定了6个新API:

Once::is_completed
f32::LOG10_2
f32::LOG2_10
f64::LOG10_2
f64::LOG2_10
iter::once_with

Rust1.43.1

1,修复了无法检测到的CPU功能
2,修复破损的cargo package --list
3,OpenSSL更新到1.1.1g

1.44.0稳定版

亮点是cargo中整合了cargo tree,并在no_std环境中支持async/await.

1.45.0稳定版

修复转换(cast)中的不健壮性
rustc使用LLVM作为编译器后端.编写如下代码时:

pub fn cast(x: f32) -> u8 {x as u8
}

Rust1.44.0及更早版本中的Rust编译器生成如下的LLVM-IR:

define i8 @_ZN10playground4cast17h1bdf307357423fcfE(float %x) unnamed_addr #0 {
start:%0 = fptoui float %x to i8ret i8 %0
}

fptoui实现了转换,它是"浮点到正整数"的缩写.
但有个问题.文档中说:
"fptoui"指令,把浮点数转换为最接近(圆整为零)的正整数值.如果该值不适合ty2,则结果有问题.
即:如果转换大浮点数小整数,你会得到未定义行为.

即,如,如下没有明确定义:

fn cast(x: f32) -> u8 {x as u8
}
fn main() {let f = 300.0;let x = cast(f);println!("x: {}", x);
}

这就是所说的"健壮性"错误.
不过,花了很久才解决该错误.原因是不清楚正确前进道路.
最后,决定这样:
1,as执行"饱和转换".
2,如果想跳过检查,添加新的不安全转换.

这与访问数组类似,如:
1,检查array[i]以确保数组至少有i+1个元素.
2,可用unsafe{array.get_unchecked(i)}跳过检查.
什么是饱和转换?看看稍微修改下的示例:

fn cast(x: f32) -> u8 {x as u8
}
fn main() {let too_big = 300.0;let too_small = -100.0;let nan = f32::NAN;println!("too_big_casted = {}", cast(too_big));println!("too_small_casted = {}", cast(too_small));println!("not_a_number_casted = {}", cast(nan));
}

这打印:

too_big_casted = 255
too_small_casted = 0
not_a_number_casted = 0

即,太大的数字会变成最大可能值.太小的数字会产生最小的可能值(即零).NaN产生零.
不安全方式转换的新API是:

let x: f32 = 1.0;
let y: u8 = unsafe { x.to_int_unchecked() };

但如常,这只是用作最后的手段.

稳定式,模式和语句中的类似函数的过程宏

目标是不要求你编写不安全代码.
像这样:

gobject_gen! {class MyClass: GObject {foo: Cell<i32>,bar: RefCell<String>,}impl MyClass {virtual fn my_virtual_method(&self, x: i32) {... 处理x ...}}
}

基本上只能在代码中的特定位置,调用gobject_gen!.
Rust1.45.0在三个新地方,增加了调用过程宏的功能:

//假定有叫`"mac"`的过程宏,
mac!(); //项目位置,这是以前稳定的
//但下三个是新的:
fn main() {let expr = mac!(); //表达式位置match expr {mac!() => {} //模式位置}mac!(); //语句位置
}

下面是即将发布的火箭的"helloworld"示例:

#[macro_use] extern crate rocket;
#[get("/<name>/<age>")]
fn hello(name: String, age: u8) -> String {format!("Hello, {} year old named {}!", age, name)
}
#[launch]
fn rocket() -> rocket::Rocket {rocket::ignite().mount("/hello", routes![hello])
}

更改库

Rust1.45.0中,以下API已稳定:

Arc::as_ptr
BTreeMap::remove_entry
Rc::as_ptr
rc::Weak::as_ptr
rc::Weak::from_raw
rc::Weak::into_raw
str::strip_prefix
str::strip_suffix
sync::Weak::as_ptr
sync::Weak::from_raw
sync::Weak::into_raw
char::UNICODE_VERSION
Span::resolved_at
Span::located_at
Span::mixed_site
unix::process::CommandExt::arg0

此外,还可让char区间一起使用,以遍历代码点:

for ch in 'a'..='z' {print!("{}", ch);
}
println!();
//打印`"abcdefghijklmnopqrstuvwxyz"`

1.45.1稳定版

修复使用引用的常量传播

Rust1.45.0中,在确定是否传播给定常量时,rustc传播趟,没有正确处理引用,导致错误的行为.

struct Foo {x: u32,
}
fn main() {let mut foo = Foo { x: 42 };let x = &mut foo.x;*x = 13;let y = foo;println!("{}", y.x); //`->42`;期望成果:`13`
}

1.45.2稳定版

#[track_caller]关于特征对象

错误编译了带#[track_caller]注解方法的特征对象.#[track_caller]1.45上还不稳定.但是,标准库在某些特征上利用了它,以获得更好的错误消息. SliceIndex,IndexIndexMutTrait对象受此bug影响.

元组模式绑定…到标识

1.45.1中,向后移植了#74539的修复程序,但此修复程序是错误的,导致了其他不相关的破坏.因此,此版本修复还原该程序.

http://www.mmbaike.com/news/42106.html

相关文章:

  • 韩国男女直接做的视频网站吉安seo网站快速排名
  • 成都定制小程序开发公司seo专员是干什么的
  • 莆田建设网站如何给公司网站做推广
  • 网站空间数据库上传百度网盘下载慢怎么解决
  • 福建厦门网站建设优化推广网站seo
  • 网站名字怎样做版权网站宣传文案
  • 光谷做网站推广哪家好电子商务主要学什么就业方向
  • 政府电子网站建设解决方案在哪里打广告效果最好
  • 标签系统做的好的网站长春刚刚最新消息今天
  • 手機如何做网站b2b电子商务平台排名
  • 网站开发这个专业前景怎样介绍网络营销
  • 网站制作公司运作方案湘潭网站seo磐石网络
  • 请简述网站制作流程免费的个人网页
  • 做网站用旧域名好不好网店如何推广自己的产品
  • 绵阳做网站app开发需要多少钱
  • 电脑网站怎么做seo网站排名查询
  • 如皋网站制作百度竞价代运营托管
  • 做网站怎么合并单元格广州最新重大新闻
  • 移除wordpress4版本号深圳网站优化网站
  • 如何做网站的后台管理乔拓云网站注册
  • 音乐网站需求分析商务软文写作300
  • 黄山集团网站建设河南制作网站
  • 国外优秀论文网站域名备案查询系统
  • 国外wordpress模板下载免费网站排名优化软件
  • 集团网站网页模板提交链接
  • 茶叶网站flash模板重庆seo小z博客
  • 企业网站空间在哪里广州做seo整站优化公司
  • 自己的公众号怎么做的上海网站搜索引擎优化
  • 企业网站制作建设五种新型营销方式
  • 自己做商城网站 哪种好百度建站云南服务中心