argius note

プログラミング関連

演算子の再定義.....?

演算子オーバーライド。(キケンです!絶対に真似しないでください!)

class String
  def -(s) gsub(s, "") end
  def /(i) self[0, length / 2] end
  def **(i) s = self and i.times do s *= i end and s end
end

s = "squeak"
puts s + "y"
puts s - "ak" + "eze"
puts s * 3
puts s / 2
puts s ** 3
squeaky
squeeze
squeaksqueaksqueak
squ
squeaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueaksqueak

...よく考えたら再定義じゃないっぽい。