From: matz@... (Yukihiro Matsumoto) Date: 2000-04-21T11:41:34+09:00 Subject: [ruby-list:22041] Re: assert まつもと ゆきひろです In message "[ruby-list:22026] assert" on 00/04/20, "友谷 登" writes: |Cのassertに相当する機能はRubyにはないのでしょうか |あるいはRubyではもっとよい方法があるのでしょうか |とりあえず今は以下のassert.rbを使っています Pythonは文法に組み込まれてますものね。 お使いのようなもので良いと思いますが、$DEBUGを見るようにして- d オプションが指定されたときだけ実際のチェックを行うとより良 いかもしれません。たとえば def assert(*args) return unless $DEBUG exp = yield msg = "assertion failed:" for arg in args msg += " " + arg.inspect end raise AssertionError, msg end として assert("x must be positive"){x>=0} とか。 ブロックにしたのは$DEBUGが偽のとき評価せずに済むためです。 まつもと ゆきひろ /:|)