タグ

ブックマーク / qiita.com/zom (2)

  • Ctrl-cの強制停止はrescueで補足できる - Qiita

    begin sleep 1000 rescue Interrupt p 'exec Ctrl-C!' end # => "exec Ctrl-C!" ということで、放っておいたら1000秒も待ってしまうプログラムです。 プログラムが実行されている間にCtrl-cをするとRubyでは例外クラスの一つであるInterruptが発生します。 class Interrupt | Ruby 2.1.0 リファレンスマニュアル rescueは、捕捉するクラスを指定しない場合にはStandardErrorに属するエラーだけを補足します。 InterruptはStandardErrorではなくSignalExceptionクラスに属しているため、指定しなかった場合には捕捉されません。 Rubyでは他にもScriptErrorなんかもあるので、これらを使えば自前でエラーが起きている箇所をもう少し分かりやすく

    Ctrl-cの強制停止はrescueで補足できる - Qiita
    kasumani
    kasumani 2014/06/20
    Ctrl-cの強制停止はrescueで補足できる Unix系においてプログラムの強制終了、停止でCtrl-cを使うことは周知のことかと思いますが Rubyでも実行中にCtrl-cをすることで止めることができます。 百聞は一見にしかず。サンプルソー
  • do ~ endと { ~ }の結びつきの違いについて - Qiita

    data = {'hoge' => false} p data.any? do |key, val| val end この結果は何が出力されるでしょう? any?といえば、レシーバの要素が全てfalseyのときだけfalse、1つでもtruthyの要素があればtrueを返すEnumerableのメソッドです。 false、と答えた人はたぶん 「valがfalseなんだから、そりゃfalseだろ」って認識だと思います。 trueと答えた人は 「そんな聞き方するってことはtrueだろ」って人と ちゃんと理由が分かる人の二種類がいると思います。 後輩に訊ねたところ、前者の答えが返ってきていささか面白くなくてぷんすこです。 結果は当然流れ的にtrue。 はて、ここで何が起きているのか? ここで掲題の話になるわけです。 公式ドキュメントにはこうあります。 { ... } の方が do ... end

    do ~ endと { ~ }の結びつきの違いについて - Qiita
    kasumani
    kasumani 2014/06/20
    do ~ endと { ~ }の結びつきの違いについて タイトルでネタバレしつつある気がしますが、唐突に問題を出してみます。 Tags: ifttt, kasumaniのストックした投稿 - qiita from Pocket June 20, 2014 at 04:43AM via IFTTT
  • 1