Ruby 2.7.0-rc2 发布,引入模式匹配、压缩 GC,改进 REPL
Ruby 2.7.0-rc2 发布了,最终版本计划于 12 月 25 日发布。
此版本引入了许多新特性和性能改进,最值得注意的包括:
- 模式匹配
模式匹配是函数式编程语言中广泛使用的特性,如果匹配某一个模式,它可以遍历给定的对象并分配其值:
require "json" json = <<END { "name": "Alice", "age": 30, "children": [{ "name": "Bob", "age": 2 }] } END case JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: "Bob", age: age}]} p age #=> 2 end
- REPL 改进
绑定的交互式环境 irb 现在支持多行编辑,由 reline 提供支持,reline 是一种与 readline 兼容的纯 Ruby 实现。它还提供了 rdoc 集成。在 irb 中,可以显示给定类、模块或方法的引用。此外,binding.irb 中显示的源代码行和核心类对象的检查结果现在以颜色区分显示。
- 压缩 GC(Compaction GC)
压缩 GC 可以对碎片化的内存空间进行碎片整理。一些多线程 Ruby 程序可能会导致内存碎片,从而导致高内存使用率和速度下降。引入了 GC.compact 方法来压缩堆,此函数压缩堆中的活动对象,以便可以使用更少的页,并且堆可能对 CoW 更友好。
- 位置参数和关键字参数的分离
不建议使用关键字参数和位置参数的自动转换,并且在 Ruby 3 中将删除此转换。
详情查看更新说明:
https://www.ruby-lang.org/en/news/2019/12/21/2-7-0-rc2-released
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CMake 3.16.2 发布,开源构建系统
CMake 3.16.2已经发布,CMake 是一个跨平台的自动化构建系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。 该版本更新内容如下: VS:修复了 VS 16.5+ 中对 v142 工具集次要版本的支持 FindBLAS:考虑仅将线程库与 C 或 CXX 一起使用的 OpenBLAS FindBoost:添加对 Boost 1.72 的支持 Autogen:恢复处理 .hh 文件以实现兼容性 FindLAPACK:修复了对 BLAS 库中的 LAPACK 符号的支持 PCH:将 pch 头文件追加到强制包含文件列表中 Tests:修复某些编译器的 testCTestResourceSpec 结构初始化 详细信息:https://blog.kitware.com/cmake-3-16-2-available-for-downl...
- 下一篇
每日一博 | 探讨 Git 代码托管平台的若干问题 - 2019 版
关于 Git 版本控制软件种类繁多,维基百科收录的最早的版本控制系统是 1972 年贝尔实验室开发的 Source Code Control System。1986 年 Concurrent Versions System(CVS) 诞生,CVS 曾非常流行,但今时用之寥寥无几,不过 OpenBSD 仍在使用 CVS。2000 年 CollabNet 创建了 Subversion 项目,2009年,Subversion 被 Apache 基金会接受成为顶级项目并被命名为 Apache Subversion。2005 年 Linus Torvalds 创建了 Git,2007 Github 诞生后,Git 随着 Github 的发展愈发流行,14 年间,Git 成为了最流行的版本控制系统,无论是 Windows 还是 Linux 或是 Android,MySQL 等等大型软件都使用 git 进行版本控制。纵观版本控制系统流行史,前有 CVS 后有 SVN,今日 Git 更风流。俱往矣,数风流人物,还看今朝,版本控制系统莫不如斯。 与 CVS/Subversion 这种集中式版本控制系统不...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度