返回 登录
0

Nim语言0.15.0发布

阅读7515

我们很高兴地向大家宣布,Nim的最新版本0.15.0发布啦!

和往常一样,你可以在下载页下载最新的版本。

这次的发布包括将近180个bug修复和优化。查看详细的细节更新,可以参考下面的changelog

其中一些意义重大的改变包括:文档的优化,添加了multisync宏指令,以及一个新的HttpClient实现。

文档

现在,文档中的所有页面都有了一个搜索框,并且有一个下拉菜单可以选择排序的方式。这样你就可以搜索程序、类型、宏指令以及文档页面的更多内容啦。

将程序通过类型排序可以用更自然的方式显示。这可以帮你找到你想要的程序和其他标志符。

Multisync 宏指令

multisync宏指令的作用是,可以不必复制大片代码,就能轻松地完成同步或异步的IO程序。

举个例子,参考下面的recvTwice程序:

proc recvTwice(socket: Socket | AsyncSocket): Future[string] {.multisync.} =
  result = ""
  result.add(await socket.recv(25))
  result.add(await socket.recv(20))

multisync宏指令将会把上面的代码转化为:

proc recvTwice(socket: Socket): string =
  result = ""
  result.add(socket.recv(25))
  result.add(socket.recv(20))

proc recvTwice(socket: AsyncSocket): Future[string] {.async.} =
  result = ""
  result.add(await socket.recv(25))
  result.add(await socket.recv(20))

同时兼容同步和异步。

HttpClient

大多数的HttpClient程序都反对使用multisync实现。现在主要有两种类型:HttpClientAsyncHttpClient。两种实现都有相同的功能,唯一的不同是超时支持和是否阻塞。

更多信息可以查看HttpClient文档.

原文Version 0.15.0 released
作者:Dominik Picheta and Andreas Rumpf 翻译赖信涛 责编:仲培艺

评论