< 返回版块

[Rust每日新闻 - 2018-08-29]

ChaosBot 发表于

Go 2 草案发布

看了下,主要是增强了三方面:

  • 错误处理
  • 错误值
  • 泛型

大致翻看了一下,看来Go 2的设计也是深受Rust的影响。

一、错误处理方面,

引入了 handle err {}来简化之前的 if err !=nil {}之类的写法。这个受到Rust Result错误处理的启发,这样的好处就是可以把错误处理和业务逻辑区分开来

二、错误值, 主要是增强错误检查和错误格式化。

草案中加入了下面两个接口

package errors

type Wrapper interface {
  Unwrap() error
}

package errors

type Formatter interface {
  Format(p Printer) (next error)
}

通过实现此接口,可以自定义错误类型和错误格式。不由得想到了Rust里的Error trait。

三、泛型

Go2泛型也是深受Rust影响,比如草案中的代码

contract Equal(t T) {
  t == t
}

type Set(type T Equal) []T

contract声明了一种泛型约束,上面Equal表示,必须输入相等的类型。在Set 里使用 T Equal,表示对Set这个泛型进行Equal约束。

这让我想起了Rust的trait bound。

更多细节


「国产软件之光」TiKV 进入了CNCF

今天,云原生计算基金会(CNCF)接受了TiKV进入CNCF Sandbox, 用于早期和持续发展的云原生项目。TiKV是一个由国内PingCAP公司开源的分布式事务键值数据库,基于Rust实现,由Raft(通过etcd)提供支持,并受到Google Spanner设计的启发,提供简化的调度和自动平衡,而不依赖于任何分布式文件系统。

原文


Android sparse文件格式的Rust实现

android-sparse


From Rust to beyond系列:asm.js

原文


Gitpod - GitHub的在线IDE支持Rust

Gitpod是一个在线IDE,可以从任何GitHub页面启动。 只需在任何GitHub-URL前加上“https://gitpod.io#”,或使用我们的浏览器扩展名为GitHub页面添加一个按钮。

Gitpod介绍


intellij-rust更新日志

新的改进有:

  • 将Rust的设置该成了独立的面板
  • 不突出显示保留字
  • 如果trait没有在当前范围内,则相应的方法调用会被高亮显示

原文


评论区

Vitaly 2018-08-29T04:59:43.146558

Gitpod是一个在线IDE,可以从任何GitHub页面启动。 只需在任何GitHub-URL前加上“https://gitpod.io#”,或使用我们的浏览器扩展名为GitHub页面添加一个按钮。

这里多了一个“名”字吧?

admin 2018-08-30T01:27:53.767244

tikv并不能称为国产软件。就像那些重量级开源项目,并不会说成是美国软件一样。一个开源项目,可能,也希望全世界的人都能参与。属于全人类的。

作者 ChaosBot 2018-09-01T08:24:05.917101

你说的全对。而且团队也开始国际化了。 但我的意思是,他们是从国内作为起点的,值得骄傲。

@admin tikv并不能称为国产软件。就像那些重量级开源项目,并不会说成是美国软件一样。一个开源项目,可能,也希望全世界的人都能参与。属于全人类的。

1 共 3 评论, 共 1 页