新手问题 puts $! 是什么东西?

colinxt · 2013年08月02日 · 最后由 colinxt 回复于 2013年08月02日 · 2513 次阅读

其实有两个问题啦~

第一个是puts $!

CSV.open("#{name}_txt_data_gmail.csv", 'w') do |csv|
  csv << %w(date body)
  emails.each do |mail|
    begin        
      write_row mail, csv
    rescue
      puts "Cannot write this mail -> #{mail.from} to #{mail.to} with subject: #{mail.subject}"
      puts $!  #就是这个,到底输出啥?
    end
  end
end

第二个是 ruby 正则问题,那个\b有什么用?google 说跟 word boundary 有关,可是啥是 word boundary??

谢谢各位先~

$! 是个全局变量,值是最近一次 raise 的异常

\b是字符边界,也就是单词和空格之间的位置,不匹配任何字符

具体用法你 google 下就行了

例外对象,下面的解释参考自 http://doc.ruby-lang.org/ja/2.0.0/class/Kernel.html#V_--21

$! -> Exception | nil[permalink]
最後に例外が発生したときの Exception オブジェクトです。 該当する例外がないときは nil です。

Kernel.#raise によって設定されます。

この変数はスレッドローカル、読み取り専用です。

学好 ruby 的同时,不仅能学到英文,还可以学到日文啊!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号