Ruby 是一个多平台,免费分发,功能丰富的开源命令行软件,它是从头开始设计的,为想要在Ruby中构建应用程序的开发人员提供强大的编程语言
功能,很多功能
主要功能包括受Ada和Eiffel启发的简单语法,独立于操作系统的线程,处理错误的异常处理功能,众多操作符,纯粹和完整的面向对象语言,以及支持向类添加方法。 / p>
此外,Ruby仅具有单个继承,真正的闭包,其语法中的块,真正的标记和清除垃圾收集器,支持编写C扩展,整数,支持动态加载扩展库,并且它没有&t需要变量声明。
开始使用Ruby
在GNU / Linux操作系统上安装Ruby编程语言是一项非常容易的任务,因为该软件包可以直接从其主要软件存储库下载到所有主要发行版上。使用内置的Software Center应用程序进行安装。
作为替代方案,可以使用源软件包安装最新版本,该软件包在Softoware上免费分发。只需下载并将其保存在您的主目录中,解压缩存档并导航到终端仿真器应用程序中提取的存档文件的位置(例如cd /home/softoware/ruby-2.2.0)。
运行‘ ./ configure’用于配置项目的命令(您可以使用&lbsp; ./ configure --help’命令查看用于针对特定硬件体系结构优化Ruby的可用选项。然后,运行‘ make’命令编译它和‘ sudo make install’命令安装它。
在GNU / Linux,Windows,Mac OS X,BeOS和OS / 2上受支持
Ruby是一个跨平台的软件,可以成功地用于所有GNU / Linux发行版,以及任何类UNIX操作系统,包括Mac OS X,BeOS,OS / 2和Microsoft Windows。它与32位和64位计算机平台兼容。
此版本中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
2.5.0版中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.4.2中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.4.1中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.4.0中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.3.3中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.3.1中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.3.0中的新功能:
- 介绍了一个Frozen String Literal Pragma。使用Ruby 2.1,“str”.freeze已经过优化以减少对象分配。 Ruby 2.3引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串文字。另外,为了进行调试,您可以获得创建对象的位置“无法修改冻结的字符串”。错误--debug = frozen-string-literal命令行选项。
- 引入了一个安全的导航操作符(所谓的孤独操作符),它已经存在于C#,Groovy和Swift中,以简化nil处理为obj和.foo。还添加了数组#dig和Hash #dig。请注意,这表现为尝试! Active Support,专门处理nil。
- 捆绑了did_you_mean gem。 did_you_mean gem显示NameError和NoMethodError上的候选项以简化调试。
- RubyVM :: InstructionSequence#to_binary和.load_from_binary作为实验性功能介绍。有了这些功能,我们就可以制作一个ISeq(字节码)预编译系统。
- 它还包括许多性能改进,例如,重新考虑方法入口数据结构,引入新的表数据结构,优化Proc#调用,用于对象分配和方法调用代码的机器代码级调整,更智能的实例变量数据结构,套接字和I / O允许使用“exception:”。用于高性能非阻塞I / O的关键字等。
版本2.2.3中的新功能:
- 此版本包含RubyGems域的安全修复程序名称验证漏洞。 CVE-2015-3900请求RubyGems 2.4.6及更早版本中的劫持漏洞
版本2.2.2中的新功能:
- 此版本包含OpenSSL扩展的安全修复程序主机名验证漏洞。
版本2.2.0中的新功能:
- VM(方法缓存)
- RGenGC(参见ko1的RubyKaigi演示文稿和RubyConf 2013演示文稿)
- 细化#8481#8571
- 语法更改:
- 十进制/复杂文字#8430
- def的返回值#3753
- Bignum的:
- 使用GMP#8796
- String#scrub#8414
- Socket.getifaddrs#8368
- RDoc 4.1.0和RubyGems 2.2.0
- " literal" .freeze现已优化#9042
- 添加Exception#cause#8257
- 更新BigDecimal,JSON,NKF,Rake,RubyGems和RDoc等库
- 删除诅咒#8584
版本2.0.0-p0中的新功能:
- 语言核心功能:
- 关键字参数,为API设计提供灵活性
- Module #prepend,这是一种扩展类 的新方法
- 文字%i,可轻松创建符号数组
- __ dir__,返回当前正在执行的文件的dirname
- UTF-8默认编码,可以省略许多神奇的评论
- 内置库:
- Enumerable#lazy和Enumerator :: Lazy,for(可能无限)lazy stream
- Enumerator#size和Range#size,用于延迟大小评估
- #to_h,这是转换为哈希的新惯例
- Onigmo,这是一个新的正则表达式引擎(Oniguruma的一个分支)
- 异步异常处理API
- 调试支持:
- DTrace支持,支持生产中的运行时诊断
- TracePoint,一种改进的跟踪API
- 绩效改进:
- 通过位图标记进行GC优化
- 内核#需要优化,这使得Rails启动非常快
- VM优化,例如方法调度
- 浮动操作优化
版本1.9.3-p392中的新功能:
- 此版本包含有关捆绑的JSON和REXML的安全修复程序:
- JSON中的拒绝服务和不安全对象创建漏洞(CVE-2013-0269)
- REXML(XML炸弹)中的实体扩展DoS漏洞
- 还包括一些小错误修正。
版本1.9.3-p385中的新功能:
- 此版本包含有关捆绑的安全修复程序的RDoc。
版本1.9.3-p384中的新功能:
- 此版本包含有关捆绑的安全修复程序的RDoc。
版本1.9.3-p286中的新功能:
- $ SAFE逃避有关异常#to_s的漏洞/ NameError#to_s(CVE-2012-4464,CVE-2012-4466)
- 因插入非法NUL字符而导致无意创建文件
- 其他许多错误修复。
评论没有发现