From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2002-03-14T15:48:48+09:00 Subject: [ruby-dev:16375] Re: defined? autoload constant けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :16304 ] the message: "[ruby-dev:16304] Re: defined? autoload constant ", on Mar/10 00:03(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >|> あれはcomplex.rbがautoload的にお行儀が悪い(Rationalが定義さ >|> れているかどうかで、Fixnumが拡張されているかどうかを判定して >|> いる)のが原因なので、本当に対応する必要があるかどうかは疑問 >|> です。 >| >|重複してaliasするのを避けるためのように見えるので、これでどうで >|しょうか。 > >石塚さんが納得したらコミットしたいです。どう? > keiju えー. いま, RationalとComplexとMatrixをちょっとずつ直しているので, まと めて行います. ところで, [ruby-dev:16298]では, method_defined?を使っていますが, defined?ではまずい理由ありますの? あ, そうそう, Complex#to_sは以下のような定義になっています. #-- class Complex def to_s if @real != 0 if defined?(Rational) and @imag.kind_of?(Rational) and @imag.denominator != 1 if @imag >= 0 @real.to_s+"+("+@imag.to_s+")i" else @real.to_s+"-("+(-@imag).to_s+")i" end else if @imag >= 0 @real.to_s+"+"+@imag.to_s+"i" else @real.to_s+"-"+(-@imag).to_s+"i" end end else if defined?(Rational) and @imag.kind_of?(Rational) and @imag.denominator != 1 "("+@imag.to_s+")i" else @imag.to_s+"i" end end end end ##-- で, autoloadされた定数がConstantを返すのはやはりまずいのでは? または, autoloadされているかどうかを定数ベースで判断できる方法がないとどっちなの か区別できないと思うのですが? __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@rational.com <<---