私は、受け入れるべき型を動的にしたいが、依然として浮動小数点型のクラスを持っています。私は以下のクラスの例を追加しました。簡単に言えば、IntsまたはFloats(または抄録(Float))のいずれかを含むクラスが必要ですが、typeパラメータには実際にフィットするものが割り当てられていないことがあります。Tにデフォルト値を代入する:浮動小数点型パラメータ
class Container<T:Float>
{
public function new(aValue:T = 0.0)
{
}
public function example():T
{
return 16.0;
}
この例では、2つのコンパイラエラーが発生します。最初のものは、コンストラクタnew(aValue:T = 0.0
のデフォルト値です。単純な修正は、値を動的に設定することですが、私はこれよりも綺麗なコードを好きです。 2番目のエラーはexample()の戻り値にあります。 Tインスタンスではないので、16.0を返すことはできません。
私の質問:これは実行可能ですか、そうでない場合は、すべてのタイプに異なるクラス定義を使用する必要がありますか?
この単純な解決策は、いくつかの状況で非常によく動作しますが、それはフロートからFloat'に '含まれていません抄録のために動作しないでしょう。 浮動小数点型のオーバーロードをサポートする任意の種類の抽象クラスをサポートすることができます。 もちろん、浮動小数点型パラメータに値を代入する方法がない場合は、単純な浮動小数点型のコンテナが最も効率的なソリューションです。 –
待って、シャワーが助けになりました。私の以前のコメントは、厳密には浮動小数点型ではない抽象型としては機能しません。私が本当に必要とするのは、ある型で可能なオペレータのオーバーロードを指定する方法ですが、それは可能だとは思いません。あなたの答えを正しいものとして選択します。 –