Rust 1.42 编程语言发布

发表 系统编程语言发布 锈1.42,由 Mozilla 项目创建。 该语言专注于内存安全,提供自动内存管理,并提供在不使用垃圾收集器和 运行.

Rust 的自动内存管理使开发人员免于指针操作,并防止低级内存操作引起的问题,例如释放后内存访问、空指针取消引用、缓冲区溢出等。 正在开发一个包管理器来分发库、确保组装并管理项目的依赖关系。 货物,让您一键获取程序所需的库。 支持存储库来托管库 箱子.

创新:

  • 添加者 支持匹配切片部分的模板(动态数组、切片)。 以前,允许精确匹配,但现在可以使用标记为“..”的结构来覆盖数组的其余元素。 例如:

    fn foo(单词: &[&str]) {
    匹配单词{

    // 检查数组的起始元素并忽略
    跟随它们的元素
    [“你好”,“世界”,“!”,..] => println!(“你好世界!”),

    // 检查前两个元素“Foo”和“Bar”,其余的不重要
    ["Foo", "Bar", ..] => println!("Baz"),

    // 忽略所有内容,但最后一个元素必须是“!”。
    [.., “!”] => println!(“!!!”),

    // 在开始切片中,我们包含除最后一个元素之外的所有内容,该元素应该是“z”
    [start @ .., "z"] => println!("开头为:{:?}", start),

    // 在最后一个切片中,我们放置除第一个元素之外的所有内容,第一个元素应该是“a”。
    ["a", end @ ..] => println!("以:{:?} 结尾", end),

    休息 => println!("{:?}", 休息),
    }
    }

  • 添加了一个新的宏“matches!”,它将表达式和模式作为输入,如果模式与表达式匹配,则返回“true”。 模板可以使用“|”操作而如果”。

    匹配 self.partial_cmp(其他) {
    一些(更少)=> true,
    _ => 假,
    }

    匹配!(self.partial_cmp(其他),一些(更少))

    让 foo = 'f';
    断言!(匹配!(foo, 'A'..='Z' | 'a'..='z'));

    让酒吧=一些(4);
    断言!(匹配!(条,Some(x)如果x> 2));

  • 使用不正确时显示紧急消息
    类型 Option 和 Result,现在显示行号,其中包含指向进行有问题的调用的代码的链接,而不是指向在 libcore 中实现调用的代码的链接。 例如,此更改会影响对 Option::None 的 unwrap 和 Expect 的调用,或者在 Result 类型上使用 unwrap_err、expect、expect_err 和类似方法时崩溃。

  • Cargo 包管理器提供了将“proc_macro crate”自动替换为带有过程宏的包的“extern”块的功能。 此更改允许将“use”指令应用于过程宏,而无需在代码中指定“extern crate proc_macro;”。 例如,如果程序使用“use proc_macro::TokenStream;”行,那么如果从中删除“extern crate proc_macro;”,代码现在将继续工作。
  • 标准库的功能得到了扩展。 在 iter:: 空 添加 发送和同步支持任何 T 值。
    调用 Pin::{map_unchecked, map_unchecked_mut} 发表 不必为“Sized”实现返回类型值。
    在 io:: 光标中 实施的 偏方程和方程。 “const”属性决定了在任何上下文中代替常量使用的可能性, 应用 对于 Layout::new 方法。

  • API 的新部分已转移到稳定类别,包括稳定的 CondVar::wait_while、CondVar::wait_timeout_while、
    调试映射::键、调试映射::值、
    手动Drop::take,
    ptr::slice_from_raw_parts_mut 和 ptr::slice_from_raw_parts。

  • Error::description 方法已被弃用。
  • 为armv7a-none-eabi和riscv64gc-unknown-linux-gnu平台提供二级支持。 已提供对 riscv64gc-unknown-linux-gnu 平台标准库的支持。
    苹果 32 位平台 降级 高达第三级支持,这意味着基本支持,但没有自动化测试和官方版本的发布。 支持降级是由于 Apple 不再支持 32 位平台。

来源: opennet.ru

添加评论