静态确定Dart中按位运算符可用的位

我了解在Dart中,按位运算符可用的位数随目标平台的不同而不同。例如,当为Android或iOS编译时,按位运算符作用于64位,而对于Javascript,它仅作用于32位。同样,仅支持32位整数的计算机上的按位运算将仅对32位起作用。

如何以与平台无关的方式静态确定按位运算符可用的位数?我无法为此找到API。 Platform class似乎是个不错的地方。

我可以想到两种方法:

const _isBitwise32 = (0x01 << 32) == 0;

final _isBitwise32 = (0x01 << 32) == 0;

My reading建议在两种情况下Dart都会在编译时而不是运行时评估右手表达式。我可以依靠编译器始终根据目标平台评估此表达式吗?

是否有更好的方法可以做到这一点?我希望该值是静态的,因为我正在执行的按位运算已经占用了CPU大量资源,如果可以的话,我宁愿节省时钟周期。

更新:一些快速测试显示,上面的const在编译为Javascript时的计算结果为true,否则为false,因此,我想我可以推断出编译器在目标平台的约束条件。

li8626658 回答:静态确定Dart中按位运算符可用的位

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2983499.html

大家都在问