内容简介:The Rust team is happy to announce a new version of Rust, 1.43.0. Rust is a programming language that is empowering everyone to build reliable and efficient software.If you have a previous version of Rust installed via rustup, getting Rust 1.43.0 is as eas
The Rust team is happy to announce a new version of Rust, 1.43.0. Rust is a programming language that is empowering everyone to build reliable and efficient software.
If you have a previous version of Rust installed via rustup, getting Rust 1.43.0 is as easy as:
rustup update stable
If you don't have it already, you can
get rustup
from the
appropriate page on our website, and check out the detailed release notes for
1.43.0
on GitHub.
What's in 1.43.0 stable
This release is fairly minor. There are no new major features. We have some new stabilized APIs, some compiler performance improvements, and a small macro-related feature. See the detailed release notes to learn about other changes not covered by this post.
item
fragments
In macros, you can use item
fragments to interpolate items into the body of traits,
impls, and extern blocks. For example:
macro_rules! mac_trait {
($i:item) => {
trait T { $i }
}
}
mac_trait! {
fn foo() {}
}
This will generate:
trait T {
fn foo() {}
}
Type inference around primitives
The type inference around primitives, references, and binary operations was improved. A code sample makes this easier to understand: this code fails to compile on Rust 1.42, but compiles in Rust 1.43.
let n: f32 = 0.0 + &0.0;
In Rust 1.42, you would get an error that would say "hey, I don't know how to add
an f64
and an &f64
with a result of f32
." The algorithm now correctly decides
that both 0.0
and &0.0
should be f32
s instead.
New Cargo environment variable for tests
In a move to help integration testing, Cargo will set some new environment variables .
This is easiest to explain by example: let's say we're working on a command
line project, simply named "cli". If we're writing an integration test, we want
to invoke that cli
binary and see what it does. When running tests and
benchmarks, Cargo will set an environment variable named CARGO_BIN_EXE_cli
,
and I can use it inside my test:
let exe = env!("CARGO_BIN_EXE_cli");
This makes it easier to invoke cli
, as we now have a path to it directly.
Library changes
You can now use associated constants on floats and integers directly
, rather
than having to import the module. That is, you can now write u32::MAX
or f32::NAN
with no use std::u32;
or use std::f32;
.
There is a
new primitive
module
that re-exports Rust's
primitive types. This can be useful when you're writing a macro and want to make
sure that the types aren't shadowed.
Additionally, we stabilized six new APIs:
Other changes
There are other changes in the Rust 1.43.0 release: check out what changed in Rust , Cargo , and Clippy .
Contributors to 1.43.0
Many people came together to create Rust 1.43.0. We couldn't have done it without all of you.Thanks!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
无懈可击的Web设计
西德霍姆 / 刘建宁 / 清华大学出版社 / 2009-4 / 59.90元
一个网站,无论视觉上多么美观,内容多么丰富,如果不能面向最广泛的用户群,那它就不算是真正成功的网站。《无懈可击的Web设计:利用XHTML和CSS提高网站的灵活性与适应性》是Web标准设计领域的公认专家Dan Cederholm的倾力之作,向您描述了基于Web标准的设计策略,以适应各种各样的用户浏览方式。书中每一章的开头都给出了一个基于传统HTML技术的实例,然后对它进行重构,指出它的局限性,并利......一起来看看 《无懈可击的Web设计》 这本书的介绍吧!