なかだです。

At Thu, 20 Jan 2000 01:31:21 +0900,
Kazunori NISHI <kazunori / swlab.csce.kyushu-u.ac.jp> wrote:
> >   私はちょっと演算子まではどうかなーって気がして、こういうときは、
> > Numeric#nonzero? にならって
> > 
> > class String
> >   def nonempty?
> >     self unless empty?
> >   end
> > end
> 
> これ、面白いですね。新たに演算子を導入しなくても、各クラスで empty? を
> 適切に定義するだけで、文字列以外のクラスでそのまま利用できますね。

  確かに。Object/Kernel に定義しておけば現状でそのまま使えるのは
Array, Hash あたり?

> >   var1 = scheme.nonempty? || default_scheme
> > なんてとこで妥協するようじゃダメダメのアマアマでしょうか。
> 
> 上記定義の String は Object の間違いですよね?これだと、(元々の要求で
> ある) scheme == nil の場合にエラーになるので。

  あ、!(String === scheme) でしたか。じゃ、そうですね。

> あと、やはり名前が難しいですね。上記のように、真偽値として使う(後に||,
> or を伴う)場合は nonempty? でも構いませんが、元記事の例のように、戻り
> 値として値を直接利用する場合に '?' というのは、多少違和感が。。。

  これはもともとの発想が nonzero? からなのですが、確かに難しいで
す。

-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦