代码之家  ›  专栏  ›  技术社区  ›  tefozi

创建和定义向量

  •  0
  • tefozi  · 技术社区  · 14 年前

    我正在寻找方法来创建向量和推动一些值没有定义变量向量。例如:

    public function bla(data:Vector.<Object>):void { ... }
    

    此函数需要向量作为参数。我可以这样传递参数

    var newVector:Vector.<Object> = new Vector.<Object>();
    newVector.push("bla1");
    newVector.push("bla2");
    bla(newVector);
    

    bla(new Vector.<Object>().push("bla1").push("bla2"));
    

    我也试过:

    bla(function():Vector.<Object> { var result:Vector.<Object> = new Vector.<Object>(2, true); result.push("bla1"); result.push("bla2"); return result; });
    

    1067: Implicit coercion of a value of type Function to an unrelated type __AS3__.vec:Vector.<Object>...
    

    4 回复  |  直到 14 年前
        1
  •  3
  •   mrkishi    14 年前

    你不能锁链 Vector.push() 电话回传 uint s——新的向量长度。
    另一方面,强制问题的发生是因为您向 bla Vector.<Object> .

    你可以很容易地解决这个问题:

    bla((function():Vector.<Object> {
        var result:Vector.<Object> = new Vector.<Object>(2, true);
        result.push("bla1");
        result.push("bla2");
        return result; })()
    );
    

    不过,AS3中已经有一个顶级函数可以帮助您创建向量。 Vector() 函数需要 Array 或者 Vector 矢量

    bla(Vector.<Object>(['bla1', 'bla2']));
    

    访问 AS3 Reference

    编辑: () 这意味着我们 布拉 功能。

        2
  •  1
  •   sth    14 年前

    function getVector():Vector.<String>
    {
        var newVector:Vector.<String> = new Vector.<String>();
        newVector.push("blah1","blah2","blah3","blah4");
        return newVector;
    }
    
        3
  •  0
  •   Pace    14 年前

    我真的不知道你为什么要这么做。如果您经常这样做,那么您总是可以编写一个包装器类。包装器类可以有一个push方法,返回对原始对象的引用,这样您就可以使用所需的第一个方法。

    您还可以编写一个helper函数,该函数创建一个新的向量,并将元素添加到该向量中,然后返回该向量。

    有没有特别需要把这个放在一条线上?

        4
  •  0
  •   Adam Harte    14 年前

    您不能这样做:

    bla(new Vector.<Object>().push("bla1").push("bla2"));
    

    字符串 “bla2”到 内景 1.这样不行!

    下一个例子是传递 不调用该函数并传递返回的向量。

    另外,你说的向量类型是“Object”,但你在传递字符串。您应该这样做:

    Vector.<String>
    

    function getVector():Vector.<String>
    {
        var newVector:Vector.<String> = new Vector.<String>();
        newVector.push("bla1");
        newVector.push("bla2");
        return newVector;
    }
    
    bla( getVector() );
    
    推荐文章