我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:万喜彩票 > 泛型方法 >

Rust 新增存在类型支持

归档日期:05-25       文本归类:泛型方法      文章编辑:爱尚语录

  Rust 1.26 版本增加“存在类型(existential type)”支持、改进后的match绑定、切片模式及一些实用的语法糖。Rust 编译器也变得更快了,并且支持 128 位整数了。

  存在类型是通过impl Trait实现的。这使得开发人员可以指定函数的返回类型,而不必指出具体是哪一种类型。例如:

  在上述代码中,foo被声明为一个函数,它的返回类型实现了“特型(trait)”Trait,而不是具体的类型。这和下面的声明有些类似:

  不过,使用BoxTrait意味着动态分配,我们并非总是希望或需要这样,而impl Trait确保了静态分配。这种方法使foo仅能返回同样的类型。此外,impl Trait语法的胶水代码更少,如下例所示:

  在定义返回闭包的函数时,新的impl Trait语法就格外亮眼了,它实现了特型Fn:

  impl Trait语法还可以用于替代泛型类型的声明,如下例所示,虽然在这种情况下,它定义了一个通用类型,而不是存在类型:

  不管是对有经验的程序员而言,还是对 Rust 编程新手而言,另外一项改进都减轻了他们的工作,那就是更为智能的match绑定,它所需要的对编译器内部构件的了解少了。例如,下面的代码现在合法了:

  在 Rust 之前的版本中,你应该需要添加一些样板文件来满足编译器的需要,即使你的匹配意图很明确:

  Rust 1.26 还提供了两个相对较小的特性,一个是从main返回Result,一个是定义闭区间,如1..=3。

本文链接:http://apps-n-tabs.com/fanxingfangfa/338.html