泛型和类型铸造

时间:2016-02-23 15:19:22

标签: hacklang

这是一个非常简化的例子:

function getList<Tx>():Vector<Tx> {

    $values = ['1','2','3','4','5'];
    $list = Vector{};

    foreach ($values as $value) {
        $list->add((Tx) $value);
    }

    return $list;
}

例如,我知道$ values是数字的,来自数据库提取结果或其他任何东西,但存储为字符串。所以我想通过

将它们转换为int
Vector<int> $myList = $this->getList<int>();

  

不支持对象强制转换。尝试&#39; if($ var instanceof Tx)&#39;要么   &#39;不变($ var instanceof Tx,...)&#39;。 (命名[2055])

在这种情况下,我应该为不同类型使用两个函数,例如getListInt():Vector<int>getListString():Vector<string>,还是我错过了什么?

1 个答案:

答案 0 :(得分:-1)

就像一个解决方法,而不是真正的hacklang答案,但我只是尝试在mysql中解决它。为什么不直接在mysql查询中进行转换?

SELECT CONVERT(field_as_string,UNSIGNED INTEGER) AS num FROM table;

然后你的列表是一个整数列表,你可以将它添加到Vector。