【发布时间】:2012-07-11 21:29:07
【问题描述】:
我遇到了一些看起来不寻常的事情,我想知道是否有人可以解释原因。
1.8.7 :001 > some_str = "Hello World"
=> "Hello World"
1.8.7 :002 > some_str.try(:match, /^(\w*)/)
=> #<MatchData "Hello" 1:"Hello">
1.8.7 :003 > $1
=> nil
1.8.7 :004 > some_str.match(/^(\w*)/)
=> #<MatchData "Hello" 1:"Hello">
1.8.7 :005 > $1
=> "Hello"
我不确定为什么全局变量$1 不是第一次设置,而是第二次设置。有什么见解吗?
【问题讨论】:
-
您应该在其中添加 rails 或 active-support 标签。
try没有内置在 Ruby 中,也不常用在 Rails 之外 -
$1不是全局变量。它是按线程定义的。
标签: ruby-on-rails ruby regex activesupport