【发布时间】:2013-02-19 20:24:44
【问题描述】:
长话短说,我正在编写一个包含选项参数的方法,如果键 :if 的值评估为 true,它将执行某些操作。当我使用新语法在 IRB 中尝试哈希时,在 IRB 中出现语法错误,提示保持打开状态:
1.9.3p374 :010 > {if: true}
1.9.3p374 :011?>
使用旧语法,效果很好:
1.9.3p374 :011 > {:if => true}
=> {:if=>true}
开始语句的所有关键字都表现出相同的行为。例如。 def、do、module、case
出现在中间的其他保留字和class 工作正常:else、end
我的问题是:这是预期的行为、错误还是限制?
【问题讨论】:
-
irb有点脆弱,有相当多的脑损伤,你可能已经看到了一些。 -
@muistooshort 这似乎毫无根据。
echo 'puts {if: true}.inspect' > test.rb; ruby test.rb返回:test.rb:1: syntax error, unexpected ':'irb脆弱? -
-
哦,这很公平 :) 这一直困扰着我,但我想我从来没有真正在意过。
-
@nzifnab:也许你应该试试
h = { if: 'b' };puts h.inspect。
标签: ruby hash ruby-1.9 irb ruby-1.9.3