阅读更多

0顶
0踩

编程语言

翻译新闻 Ruby 2.0 未被提及的一些特性

2013-04-16 15:26 by 副主编 wangguo 评论(2) 有7726人浏览
Ruby 2.0发布已经有一段时间了,网上也有大量关于2.0新特性的文章。但是这些文章似乎遗漏了一些特性,因此有了下面的内容。



1.  现在所有的常量均支持 ||= 和 &&=

在Ruby 1.8和1.9中,常量的行为和变量一样,但并非所有都是如此。这是比较可悲的。

>> A = nil; A ||= 1; p A
-e:1: warning: already initialized constant A
1
>> A = 1; A += 1; p A
-e:1: warning: already initialized constant A
2
>> ::B ||= 1
-e:1: constant re-assignment

注意,在最后一种情况下,常量甚至之前没有定义。

在Ruby 2.0中,允许我们自由使用。

>> ::A ||= 1; p A
1

但是请不要在你的代码中这样使用。

2.  更好的消歧符号和hash标签

在Ruby 1.9中,会提示以下代码存在语法错误:

>> if false; else p:bar end
-e:1: syntax error, unexpected tLABEL
if false; else p:bar end
                 ^

但是在Ruby 2.0中可以解析:

>> if false; else p:bar end
:bar
=> :bar

但是也请不要在代码中使用这个特性。

3.  在方法主体中使用BEGIN{}会显示错误

Ruby 1.8:

>> def f; BEGIN{}; end
-e:1: BEGIN in method
def f; BEGIN{}; end
            ^

Ruby 1.9:

>> def f; BEGIN{}; end
-e:1: syntax error, unexpected keyword_BEGIN
def f; BEGIN{}; end
            ^

Ruby 2.0:

-e:1: BEGIN is permitted only at toplevel
def f; BEGIN{}; end
            ^

请不要依赖这个特性或使用BEGIN来写代码。

4.  遮蔽块变量声明现在可以跨多行

Ruby 1.9:

>> m { |a
;b| }
-:1: syntax error, unexpected '\n', expecting '|'

Ruby 2.0:

>> p { |a
;b| }
nil

5.  其他

Ruby 1.9:

>> m () {}
-e:1: syntax error, unexpected ')'
m () {}
    ^

Ruby 2.0:

>> p () {}
nil

建议在专家指导下使用该特性。

原文:Unmentioned Features of Ruby 2.0
  • 大小: 31.4 KB
0
0
评论 共 2 条 请登录后发表评论
2 楼 wangguo 2013-04-16 17:44
clxy 写道
这大量的
引用
不要在代码中使用这个特性

是怎么个意思?

还有
引用
建议在专家指导下使用该特性。


我去,这是什么强力毒药或是WMD吗?!
服了...

这些特性不向后兼容,因此使用要慎重,稍有不慎就出错
1 楼 clxy 2013-04-16 15:53
这大量的
引用
不要在代码中使用这个特性

是怎么个意思?

还有
引用
建议在专家指导下使用该特性。


我去,这是什么强力毒药或是WMD吗?!
服了...

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 进入Ruby的世界——基础篇

    Ruby语法的生存工具箱[1] Ruby基础编程指引:程序编写、保存、运行和错误检查 Ruby安装指南 Ruby的扩展机制 Ruby中易用的命令行工具,包括交互式Ruby解释器(irb) 本书的内容是Ruby基础,而本章是基础中的基石。本...

  • 听Ruby之父畅谈编程语言的设计

    本文摘自《松本行弘:编程语言的设计与实现》 1-1 自己创造编程语言的意义 通过实际创造一门新的编程语言,可以学到编程语言的设计思路和实现方法。随着开源的普及,创造新编程语言的门槛一下子...Ruby 是我出于兴...

  • Web 2.0

    web 2.0 概念

  • Perl、PHP、Python、Java和Ruby的比较

    预览 ...◆ (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 提问 ◆ Perl、Python、Ruby和PHP各自有何特点? ◆ 为什么动态语言多作为轻量级的解决方案? ◆ LA

  • JavaSE-新特性(JDK5-JDK12)持续维护

    JDK5新特性 自动装箱与拆箱枚举静态导入可变参数(Varargs)内省(introspector)泛型(Generic) For-Each循环 JDK6新特性 Desktop类和SystemTray类使用JAXB2来实现对象与XML之间的映射...

  • web2.0

    Web2.0 是相对Web1.0 的新的一类互联网应用的统称。Web1.0 的主要特点在于用户通过浏览器获取信息。Web2.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。所谓网站内容的制造者是说...

  • Ext JS 2.0 IDE

    Aptana Studio ...但是Aptana当前捆绑的Ext的版本有些旧(1.1的),下面就介绍一个插件的安装方法,让Aptana支持到2.0(由Markus Schmidleitner提供,用起来还不错): 1. 下载并安装Aptana Studi...

  • 比较Perl、PHP、Python、Java和Ruby 【转载】

    !预览 · 语言的发展趋势一定是动静结合、刚柔并济 · Perl凝练晦涩,Python优雅...· (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 ?提问 Perl、Python、Ruby和PHP各自有

  • Status Ruby on Rails in China - Presentation Transcript

    Slide 1: 铁道中文应用开发现状综述 2008年8月 制作发布:铁道播客 BD7LX 深圳 http://rorcast.blogger2blogger.com/ 铁道中文应用开发现状综述 2006年8月 An Interim Report of Ruby on Rails Applications and ...

  • javapython区别最全整理终极收藏_Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】...

    从本文的内容上,写的时间比较早,...Ruby on Rails 为什么会流行?编程语言的发展趋势是什么?“剩下四种动态语言,我们将之归为后台脚本语言。”冒号说着,画了张图表—— 引号听得仔细,说:“我记得你之前把这些...

  • 比较Perl、PHP、Python、Java和Ruby

    !预览 · 语言的发展趋势一定是动静结合...· (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影   ?提问 Perl、Python、Ruby和PHP各自有何特点? 为什么动态语言多

  • 【转】语言简评:比较Perl、PHP、Python、Java和Ruby

    操千曲而后晓声,观千剑...关键词:后台脚本, Perl,PHP,Python,Ruby,RoR,LAMP 摘要:简谈Perl、PHP、Python和Ruby !预览 ·  语言的发展趋势一定是动静结合、刚柔并济 ·  Perl凝练晦涩,Python优雅明晰,

  • Web2.0是什么:下一代软件的业务模式与设计模式

    Web2.0 Web2.0 是相对Web1.0 的新的一类互联网应用的统称。Web1.0 的主要特点在于用户通过浏览器获取信息。Web2.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。所谓网站内容的制造者...

  • spring-boot-2.6.6.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

  • LabVIEW中最小二乘法曲线拟合与报表生成:流程图自动化实现波形拟合的最佳方法

    内容概要:本文详细介绍了LabVIEW中最小二乘法的应用及其在曲线拟合和报表生成中的具体实现。LabVIEW作为一种流程图编程语言和开发环境,能够通过图形化编程的方式,使用户轻松构建拟合模型并计算最佳拟合曲线的参数。此外,LabVIEW还提供了丰富的波形处理和分析工具,支持对波形数据进行预处理(如滤波、降噪和采样),并通过最小二乘法进行波形拟合,最终生成详细的报表。最小二乘法通过最小化数据点与拟合曲线之间的误差平方和,广泛应用于统计学、工程学和物理学等领域。 适合人群:从事科学研究、工程设计和数据分析的专业人士,尤其是那些希望通过图形化编程提高工作效率的人群。 使用场景及目标:适用于需要对大量数据进行拟合分析并生成报告的场合,如实验数据分析、工程设计验证等。目标是通过LabVIEW提供的强大工具,快速准确地找到最佳拟合曲线,提升数据分析效率。 其他说明:LabVIEW不仅简化了编程过程,还提高了数据分析的直观性和准确性,使得即使是非专业程序员也能轻松上手。

  • C语言编程入门教程精简版专题培训课件.ppt

    C语言编程入门教程精简版专题培训课件.ppt

  • spring-boot-2.4.4.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

  • DNA进化算法及其改进研究样本.doc

    DNA进化算法及其改进研究样本.doc

  • 智慧城市-【精品】2019年百度地图城市大数据平台解决方案.zip

    智慧城市-【精品】2019年百度地图城市大数据平台解决方案.zip

  • spring-data-redis-1.2.0.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics