2

私は持っています:

@property float x(float[2] vector)
{
    return vector[0];
}

@property void x(float[2] vector, float value)
{
    vector[0] = value;
}

たとえば、配列を宣言し、float[2] a;後でを呼び出すだけで配列の最初の要素を取得できますが、a.xを設定したい場合はa[0]、を呼び出すことはできませんa.x = 3.14。コンパイラに問題を引き起こしたり、例外をスローしたりすることはありません。そして後で私がそれを得るときa[0]それはそれがNaNどちらであるかであると言いfloat.initます。これは、a [0]が設定されておらずa.x、同時に有効と無効であることを意味します。

単純にfloat配列が必要で、getおよびsetプロパティxがあります。それを行う方法はありますか?a.x(3.14)そして、設定に使用できることは知っていますが、のメンバープロパティであるa[0]かのようにしたいと思います。xa

4

1 に答える 1

5

静的配列は値によって渡されます。ref参照で渡すには、を使用する必要があります。

@property float x(ref float[2] vector)
@property void x(ref float[2] vector, float value)

注:私はD2を参照しています。D1静的配列のAFAIKは、以前は参照によって渡されていましたが、D2ではデフォルトで値によって渡されます。

于 2012-12-17T13:09:00.110 に答える