升级到Ruby 1.9 笔记一

本文记录了从Ruby1.8升级到Ruby1.9的过程中遇到的主要问题,包括语法变化如if和case语句的新格式,以及?Q操作符行为的改变,并提供了相应的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正在将现有的系统从Ruby 1.8升级到最新版本的Ruby1.9,把我在升级过程中遇到的问题记录下来供大家参考。

+ 在Ruby 1.9中不能再使用下面的if格式:

if Boolean-expression  : 


必须要使用:

if Boolean-expression [then] 


我写了一个Regular Expression来找出代码中所有有问题的行:

^\s*if\s+*+\s+:\s*$


+ 同样在Ruby 1.9中不能再使用下面的case格式:

case
when condition [ , condition ] .. :
body


必须要使用:

case
when condition [ , condition ] .. [then]
body


用下面的Regular Expression来找出代码中所有有问题的行:

^\s*when\s+.+\s+:\s*$


+ 在Ruby1.8, ?Q会返回字母Q的ASCII码值81,是一个整数,而在Ruby1.9,?Q会返回字符串"Q"。

如果希望能够保持原有的结果,可以用以下方式:

?Q.getbyte(0)


个人感觉?Q如果返回字符串就没有存在的意义了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值