数値ベクトルをジェネリックベクトル関数に渡すにはどうすればよいですか?

カイル・デラニー

私は種類のベクターを用いたいくつかの奇妙な行動に気づいてきたintuintNumber自分でテストできるコードは次のとおりです。

package
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite
    {
        private var untypeds:Vector.<*> = new <*>[{}, 7];
        private var objects:Vector.<Object> = new <Object>[{}, {}];
        private var sprites:Vector.<Sprite> = new <Sprite>[new Sprite(), new Sprite()];
        private var events:Vector.<Event> = new <Event>[new Event("1"), new Event("2")];
        private var booleans:Vector.<Boolean> = new <Boolean>[true, false];
        private var strings:Vector.<String> = new <String>["1", "2"];
        private var ints:Vector.<int> = new <int>[-5, -6];
        private var uints:Vector.<uint> = new <uint>[5, 6];
        private var numbers:Vector.<Number> = new <Number>[2.5, 5.2];

        public function Main()
        {
            myFunc("untypeds");
            myFunc("objects");
            myFunc("sprites");
            myFunc("events");
            myFunc("booleans");
            myFunc("strings");
            myFunc("ints");
            myFunc("uints");
            myFunc("numbers");
        }
        // Note that I'm only using a string parameter for tracing purposes.
        // The same results would be seen if the vector was passed directly as an untyped argument.
        private function myFunc(vecName:String):void
        {
            var vec:Vector.<*> = this[vecName] as Vector.<*>;
            trace(vecName + " as Vector.<*>: " + vec + " Same object? " + (vec == this[vecName]));
            vec = Vector.<*>(this[vecName]);
            trace("Vector.<*>(" + vecName + "): " + vec + " Same object? " + (vec == this[vecName]));
        }
    }
}

そして、これが出力です:

untypeds as Vector.<*>: [object Object],7 Same object? true
Vector.<*>(untypeds): [object Object],7 Same object? true
objects as Vector.<*>: [object Object],[object Object] Same object? true
Vector.<*>(objects): [object Object],[object Object] Same object? true
sprites as Vector.<*>: [object Sprite],[object Sprite] Same object? true
Vector.<*>(sprites): [object Sprite],[object Sprite] Same object? true
events as Vector.<*>: [Event type="1" bubbles=false cancelable=false eventPhase=2],[Event type="2" bubbles=false cancelable=false eventPhase=2] Same object? true
Vector.<*>(events): [Event type="1" bubbles=false cancelable=false eventPhase=2],[Event type="2" bubbles=false cancelable=false eventPhase=2] Same object? true
booleans as Vector.<*>: true,false Same object? true
Vector.<*>(booleans): true,false Same object? true
strings as Vector.<*>: 1,2 Same object? true
Vector.<*>(strings): 1,2 Same object? true
ints as Vector.<*>: null Same object? false
Vector.<*>(ints): -5,-6 Same object? false
uints as Vector.<*>: null Same object? false
Vector.<*>(uints): 5,6 Same object? false
numbers as Vector.<*>: null Same object? false
Vector.<*>(numbers): 2.5,5.2 Same object? false

注ベクトルにキャストしている。<*>を除き、どのような場合に罰金を働きintuintNumberそのような場合、グローバルVector()関数を使用してキャストするとベクトルのコピーが返され、を使用してキャストするとasが返されますnull

任意のタイプのベクトルを変更することを目的とした関数に数値ベクトルを渡す方法はありますか?

EDIT:キャストしようとしたとき、私はちょうど同じ問題を観察しているVector.<int>Vector.<Number>3つの数値型は動作しませんのためにその機能の追加のバージョンを有します、。

VC.One

「数値ベクトルを関数に渡して、任意のタイプのベクトルを変更する方法はありますか?」

これが必要かどうかはわかりませんが、*関数の入力パラメーターとしてワイルドカード()を使用してください。これにより、さまざまな数値タイプのベクトルを使用できるようになります。

var ints:Vector.<int> = new Vector.<int>();
var numbers:Vector.<Number> = new Vector.<Number>();

ints.push( 5, 3, 7 );
numbers.push( -2.8, 1.5, -1.4 );

function vect_Push (input:*) : void
{
    input.push( input[input.length-1] * 2 );
}

function vect_Mixed (inputA:* , inputB:*) : void
{
     inputB[inputB.length-1] = inputA[inputA.length-1] * inputB[inputB.length-1];
}

上記のコードでは...

  • function vect_Pushvectorまたはarray(実際には.pushメソッドに応答する任意のデータ型)を取り、もう1つの新しいエントリを追加します。
  • function vect_Mixed2つの混合vector配列を取ります(そうなるinputA可能性がありますがintsinputB可能性がありnumbersます。1つの最後のエントリはそれぞれの他のエントリと乗算されます)。

上記のコードをテストするには...

//#  test for : modify any vector (using Push to add one extra new entry)
trace("Old length ints     : " + ints.length); 
vect_Push(ints); //passing Integer to function
trace("New length ints     : " + ints.length); //should be +1 length
trace("Last new value ints : " + ints[ints.length-1]); //check new entry's value

//# test for : mixed vector types (multply types "int" with "Number")
vect_Mixed(ints, numbers); //passing Integer and Number to function
trace("New mult value numbers[last entry]  : " + numbers[numbers.length-1]);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ジェネリック型パラメーターを使用して関数のベクトルを作成するにはどうすればよいですか?

分類Dev

C#のジェネリック関数で型を渡すにはどうすればよいですか?

分類Dev

型ジェネリック関数ポインタを渡すにはどうすればよいですか?

分類Dev

複数レベルのSQLAlchemy関係を介してオブジェクトのセットを取得するにはどうすればよいですか?

分類Dev

数値ベクトルと文字行列をメッシュするにはどうすればよいですか?

分類Dev

ベクトル内のオブジェクト(リスト)の数を数えるにはどうすればよいですか?

分類Dev

ジェネリック関数の値を作成するにはどうすればよいですか?

分類Dev

Laravelでプライベート関数からパブリック関数にデータを渡すにはどうすればよいですか?

分類Dev

c#ジェネリック型パラメーターをキャストして内部関数に渡すにはどうすればよいですか?

分類Dev

イベントをsetStateコールバック関数に渡すにはどうすればよいですか?

分類Dev

数値ベクトルと文字列ベクトルをフォーマットするにはどうすればよいですか?(Dyalog APL)

分類Dev

テキストフィールドの値をSwiftのボタンクリック関数に渡すにはどうすればよいですか?

分類Dev

Swift3のボタンクリック関数にテキストフィールドの値を渡すにはどうすればよいですか?

分類Dev

ベクトルを変数引数としてRの関数に渡すにはどうすればよいですか?

分類Dev

「R」data()関数の出力をベクトルに配置するにはどうすればよいですか?

分類Dev

「R」data()関数の出力をベクトルに配置するにはどうすればよいですか?

分類Dev

ベクトルを関数に解析するにはどうすればよいですか?

分類Dev

Rust関数からベクトル要素を返すにはどうすればよいですか?

分類Dev

sympyでベクトル関数を作成するにはどうすればよいですか?

分類Dev

再帰関数でベクトルを出力するにはどうすればよいですか?

分類Dev

数値ベクトルからラベルのベクトルを作成するにはどうすればよいですか?

分類Dev

ベクトルから複数の値を削除するにはどうすればよいですか?

分類Dev

2つの数値ベクトルからDESeqDataSetFromMatrixを作成するにはどうすればよいですか?

分類Dev

ベクトルを使用して数値を入力するにはどうすればよいですか?

分類Dev

ジェネリックベクトルのListIsomorphicインスタンスを作成するにはどうすればよいですか?

分類Dev

ジェネリック型Vec <T>のベクトルの特性を実装するにはどうすればよいですか?

分類Dev

ベクトルのemplace_back関数を使用するにはどうすればよいですか?

分類Dev

この特定の非numpy関数をベクトル化するにはどうすればよいですか?

分類Dev

貼り付け関数に渡される文字列ベクトルに二重引用符を挿入するにはどうすればよいですか?

Related 関連記事

  1. 1

    ジェネリック型パラメーターを使用して関数のベクトルを作成するにはどうすればよいですか?

  2. 2

    C#のジェネリック関数で型を渡すにはどうすればよいですか?

  3. 3

    型ジェネリック関数ポインタを渡すにはどうすればよいですか?

  4. 4

    複数レベルのSQLAlchemy関係を介してオブジェクトのセットを取得するにはどうすればよいですか?

  5. 5

    数値ベクトルと文字行列をメッシュするにはどうすればよいですか?

  6. 6

    ベクトル内のオブジェクト(リスト)の数を数えるにはどうすればよいですか?

  7. 7

    ジェネリック関数の値を作成するにはどうすればよいですか?

  8. 8

    Laravelでプライベート関数からパブリック関数にデータを渡すにはどうすればよいですか?

  9. 9

    c#ジェネリック型パラメーターをキャストして内部関数に渡すにはどうすればよいですか?

  10. 10

    イベントをsetStateコールバック関数に渡すにはどうすればよいですか?

  11. 11

    数値ベクトルと文字列ベクトルをフォーマットするにはどうすればよいですか?(Dyalog APL)

  12. 12

    テキストフィールドの値をSwiftのボタンクリック関数に渡すにはどうすればよいですか?

  13. 13

    Swift3のボタンクリック関数にテキストフィールドの値を渡すにはどうすればよいですか?

  14. 14

    ベクトルを変数引数としてRの関数に渡すにはどうすればよいですか?

  15. 15

    「R」data()関数の出力をベクトルに配置するにはどうすればよいですか?

  16. 16

    「R」data()関数の出力をベクトルに配置するにはどうすればよいですか?

  17. 17

    ベクトルを関数に解析するにはどうすればよいですか?

  18. 18

    Rust関数からベクトル要素を返すにはどうすればよいですか?

  19. 19

    sympyでベクトル関数を作成するにはどうすればよいですか?

  20. 20

    再帰関数でベクトルを出力するにはどうすればよいですか?

  21. 21

    数値ベクトルからラベルのベクトルを作成するにはどうすればよいですか?

  22. 22

    ベクトルから複数の値を削除するにはどうすればよいですか?

  23. 23

    2つの数値ベクトルからDESeqDataSetFromMatrixを作成するにはどうすればよいですか?

  24. 24

    ベクトルを使用して数値を入力するにはどうすればよいですか?

  25. 25

    ジェネリックベクトルのListIsomorphicインスタンスを作成するにはどうすればよいですか?

  26. 26

    ジェネリック型Vec <T>のベクトルの特性を実装するにはどうすればよいですか?

  27. 27

    ベクトルのemplace_back関数を使用するにはどうすればよいですか?

  28. 28

    この特定の非numpy関数をベクトル化するにはどうすればよいですか?

  29. 29

    貼り付け関数に渡される文字列ベクトルに二重引用符を挿入するにはどうすればよいですか?

ホットタグ

アーカイブ