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

colinxt · August 02, 2013 · Last by colinxt replied at August 02, 2013 · 2514 hits

其实有两个问题啦~

第一个是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 的同时,不仅能学到英文,还可以学到日文啊!

You need to Sign in before reply, if you don't have an account, please Sign up first.