2006年01月10日
_ Rubyに型チェック機構をつけてみる
簡単な型チェック機構を実装してみました。 rtyper.rbです。 以下のようにして利用します。
require 'rtyper' class Moge extend Bydo declare :f, Integer, :* => [Numeric], :ret => Numeric def f(n,*rest) (rest.inject{|x,y| x+y})**n end end p Moge.new.f(2, 1.2, 4, 3.5) p Moge.new.f(2, "abc", "def", "ghi") # => Error!
まあある種の表明としてPHPの型チェックくらいには役に立つかもしれません。 型チェック機構の利点は主に実行前にチェックできることだと思うので どうなんだろうとは思います。Duck typingとも相容れませんしね。
契約によるプログラミングをサポートするくらい強力な機構であれば 有用でしょう。