Hack语言:集合类型的泛型

时间:2014-04-13 19:46:25

标签: generics hhvm hacklang

为什么这段代码有效?

<?hh // strict
function test(Vector<int> $v):void {
    print_r($v);
}

test(Vector {1, array("I'm an array"), 3});

不应该抛出错误吗?什么是<int>应该是什么?

1 个答案:

答案 0 :(得分:7)

这不会在HHVM中引发错误,但会在Hack工具中引发错误。这是因为HHVM目前忽略了泛型,所以只是检查$vVector

运行Hack工具(hh_client)将首先抱怨顶级语句,如果通过将函数包含在函数内test来纠正错误,则会正确地抱怨尝试传递Vector<mixed>Vector<int>

相关问题