tap break 教に入信しようと思う

便利。

たった一例しか使った記憶がないけど、それだけでも便利。

first_line = File.open("..."){|f|
  f.gets.tap{|line| break line.chomp if line }
}

tap なしだとださいローカル変数がががが

first_line = File.open("..."){|f|
  line = f.gets
  line ? line.chomp : line
}

line 、 line って何回言ってんだよ! スマホばっか見てる JK かよ!

( 1 回しか違わないんじゃないかな…)

class Object
  def tap_instance_eval(&block)
    tap{
      ret = instance_eval(&block)
      break ret unless equal?(ret)
    }
  end
end

first_line = File.open("..."){|f|
  f.gets.tap_instance_eval{ self and chomp }
}

ついに line が居なくなったぜ、ふっ。

(ここまでやったらやり過ぎなんだな…)