2017年3月4日土曜日

開発環境

メタプログラミングRuby 第2版(Paolo Perrotta (著)、角 征典 (翻訳)、オライリージャパン)の1部(メタプログラミング Ruby)、5章(木曜日: クラスの定義)、5.7(クイズ: 壊れた計算)を取り組んでみる。

コード(Emacs)

#!/usr/bin/env ruby2.4
# -*- coding: utf-8 -*-

class Fixnum
  alias_method :real_add, :+
  
  def +(value)
    self.real_add(value).real_add(1)
  end
end

puts 1 + 1
puts 1 + 1 == 3

class Integer
  alias_method :real_sub, :-
  
  def -(value)
    self.real_sub(value).real_sub(1)
  end
end

puts 1 - 1
puts 1 - 1 == -1

入出力結果(Terminal)

$ ./sample3.rb
./sample3.rb:4: warning: constant ::Fixnum is deprecated
3
true
-1
true
$

0 コメント:

コメントを投稿