像Hiphop for PHP这样的工具如何处理异构数组?
我认为HipHop for PHP是一个有趣的工具。它本质上将PHP代码转换为C ++代码。以这种方式进行交叉编译似乎是一个好主意,但我不得不怀疑,它们如何克服两种类型系统之间的根本区别?我的一般问题的一个具体示例是异构数据结构。静态类型语言不会让您将任意类型放入数组或其他容器中,因为它们需要能够在另一端找出类型。如果我有这样的PHP数组:
$mixedBag = array("cat", 42, 8.5, false);
如何用C ++代码表示?一种选择是使用void指针(或高级版本,boost :: any),但是当你把数据从数组中取出时你需要进行转换...而且我完全不相信类型推理器总能找出在另一端施放的东西。或许,一个更好的选择可能更像是union(或boost :: variant),但是你需要在编译时枚举所有可能的类型......也许是可能的,但肯定是凌乱的,因为数组可以包含任意复杂的实体。
有谁知道HipHop和从动态类型学科到静态学科的类似工具如何处理这些类型的问题?
没有找到相关结果
已邀请:
1 个回复
伐教爸