阅读更多

0顶
0踩

编程语言

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

2013-04-16 15:26 by 副主编 wangguo 评论(2) 有7699人浏览
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 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。所谓网站内容的制造者...

  • 级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均

    级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,不平衡电网下的svg无功补偿,级联H桥svg无功补偿statcom,采用三层控制策略。 (1)第一层采用电压电流双闭环pi控制,电压电流正负序分离,电压外环通过产生基波正序有功电流三相所有H桥模块直流侧平均电压恒定,电流内环采用前馈解耦控制; (2)第二层相间电压均衡控制,注入零序电压,控制通过注入零序电压维持相间电压平衡; (3)第三层相内电压均衡控制,使其所有子模块吸收的有功功率与其损耗补,从而保证所有H桥子模块直流侧电压值等于给定值。 有参考资料。 639,核心关键词: 1. 不平衡电网下的SVG无功补偿 2. 级联H桥SVG无功补偿STATCOM 3. 三层控制策略 4. 电压电流双闭环PI控制 5. 电压电流正负序分离 6. 直流侧平均电压恒定 7. 前馈解耦控制 8. 相间电压均衡控制 9. 零序电压注入 10. 相内电压均衡控制 以上十个关键词用分号分隔的格式为:不

  • GTX 1080 PCB图纸

    GTX 1080 PCB图纸,内含图纸查看软件

  • 深度优化与应用:提升DeepSeek润色指令的有效性和灵活性指南

    内容概要:本文档详细介绍了利用 DeepSeek 进行文本润色和问答交互时提高效果的方法和技巧,涵盖了从明确需求、提供适当上下文到尝试开放式问题以及多轮对话的十个要点。每一部分内容都提供了具体的示范案例,如指定回答格式、分步骤提问等具体实例,旨在指导用户更好地理解和运用 DeepSeek 提升工作效率和交流质量。同时文中还强调了根据不同应用场景调整提示词语气和风格的重要性和方法。 适用人群:适用于希望通过优化提问技巧以获得高质量反馈的企业员工、科研人员以及一般公众。 使用场景及目标:本文针对所有期望提高 DeepSeek 使用效率的人群,帮助他们在日常工作中快速获取精准的答案或信息,特别是在撰写报告、研究材料准备和技术咨询等方面。此外还鼓励用户通过不断尝试不同形式的问题表述来进行有效沟通。 其他说明:该文档不仅关注实际操作指引,同样重视用户思维模式转变——由简单索取答案向引导 AI 辅助创造性解决问题的方向发展。

  • 基于FPGA与W5500实现的TCP网络通信测试平台开发-Zynq扩展口Verilog编程实践,基于FPGA与W5500芯片的TCP网络通信测试及多路Socket实现基于zynq开发平台和Vivad

    基于FPGA与W5500实现的TCP网络通信测试平台开发——Zynq扩展口Verilog编程实践,基于FPGA与W5500芯片的TCP网络通信测试及多路Socket实现基于zynq开发平台和Vivado 2019软件的扩展开发,基于FPGA和W5500的TCP网络通信 测试平台 zynq扩展口开发 软件平台 vivado2019.2,纯Verilog可移植 测试环境 压力测试 cmd命令下ping电脑ip,同时采用上位机进行10ms发包回环测试,不丢包(内部数据回环,需要时间处理) 目前实现单socket功能,多路可支持 ,基于FPGA; W5500; TCP网络通信; Zynq扩展口开发; 纯Verilog可移植; 测试平台; 压力测试; 10ms发包回环测试; 单socket功能; 多路支持。,基于FPGA与W5500的Zynq扩展口TCP通信测试:可移植Verilog实现的高效网络通信

  • Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警及记录、自动实验、数据处理与查询存储,报表生成与打印一体化解决方案 ,Labview液压比例阀

    Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警及记录、自动实验、数据处理与查询存储,报表生成与打印一体化解决方案。,Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警管理及实验自动化,labview液压比例阀伺服阀试验台程序:功能包括,同PLC通讯程序,液压动画,手动控制及调试,传感器标定,报警设置及报警记录,自动实验,数据处理曲线处理,数据库存储及查询,报表自动生成及打印,扫码枪扫码及信号录入等~ ,核心关键词:PLC通讯; 液压动画; 手动控制及调试; 传感器标定; 报警设置及记录; 自动实验; 数据处理及曲线处理; 数据库存储及查询; 报表生成及打印; 扫码枪扫码。,Labview驱动的智能液压阀测试系统:多功能控制与数据处理

  • 华为、腾讯、万科员工职业发展体系建设与实践.pptx

    华为、腾讯、万科员工职业发展体系建设与实践.pptx

  • 基于遗传算法的柔性车间调度优化 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

Global site tag (gtag.js) - Google Analytics