raku - Perl 6 中的所有 Instant 都是可比的还是依赖于机器?

标签 raku

在这种情况下,我可以找到定义,但我不太了解。来自 official documentation :

An Instant is a particular moment in time measured in atomic seconds, with fractions. It is not tied to or aware of any epoch.



我不明白如何在没有纪元的情况下指定特定的时间?没有引用点吗?在两台不同的 Linux 机器上,似乎两个 Instants 都指的是自 POSIX Epoch 以来的秒数。我的猜测是 Instants 确实有一个有效的开始时间,但该开始时间取决于实现/设备。
# machine1
say(now * (1/3600) * (1/24) * (1/365.25)); # years from zero point
46.0748226200715

# machine2
say(now * (1/3600) * (1/24) * (1/365.25)); # years from zero point
46.0748712024946

无论如何,所以我的问题是,可以依赖 Instants 在不同进程之间保持一致还是仅用于“内部”使用?

最佳答案

say (now).WHAT; # «(Instant)␤»
say (now * 1).WHAT # «(Num)␤»

任何数字运算符都会将其操作数强制转换为 Num s。如果您想要正确的字符串表示,请使用 .perl .
say (now).perl # «Instant.from-posix((<1211194481492/833>, 0))␤»

无论您在哪个平台,Instant.from-posix将始终相对于 Unix 时代。

见:https://github.com/rakudo/rakudo/blob/nom/src/core/Instant.pm#L15

关于raku - Perl 6 中的所有 Instant 都是可比的还是依赖于机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35071072/

相关文章:

raku - 有没有办法从 Perl6 模块代码中的 META6.json 获取版本?

type-conversion - Perl6 类属性中的类型强制

raku - Perl 6 Cro 的 stub 不运行 : HTTP/2 is requested, 但不支持 ALPN

microservices - 如何在 Cro 中插入一些路由检查中间件?

exception - 我什么时候想要恢复 Perl 6 异常?

garbage-collection - Rakudo 内存/垃圾收集技术

functional-programming - 实例化对象的方法语法 : can't seem to get it right

hash - 在 Raku 中将数字重新排列为非英文字母顺序

variables - 如何在用户定义的字符类中插入变量?

raku - 如何在 Perl 6 正则表达式中匹配相同数量的不同原子?