Ceq*_*iel 2 generics hhvm hacklang
为什么这段代码有效?
<?hh // strict
function test(Vector<int> $v):void {
print_r($v);
}
test(Vector {1, array("I'm an array"), 3});
Run Code Online (Sandbox Code Playgroud)
它不应该抛出错误吗?什么是<int>应该的?
小智 7
这不会在HHVM中引发错误,但会在Hack工具中引发错误.这是因为HHVM目前忽略了泛型,所以它只是检查是否$v是Vector.
运行Hack工具(hh_client)将首先抱怨顶级语句,如果通过将调用包装到test函数内部来纠正它,将正确地抱怨尝试传递a Vector<mixed>作为Vector<int>.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |