是否可以在 Perl 6 中重载常量?这是我正在查看的 Perl 5 示例。
特别是我想得到一个使用的文字值的字符串,例如,如果代码是
my $x = .1e-003 ;
我需要".1e-003"
而不是0.0001
.
是否可以在 Perl 6 中重载常量?这是我正在查看的 Perl 5 示例。
特别是我想得到一个使用的文字值的字符串,例如,如果代码是
my $x = .1e-003 ;
我需要".1e-003"
而不是0.0001
.
我刚刚添加了这样一个模块:
https://github.com/FROGGS/p6-overload-constant
用法:
use v6;
sub decimal { $^a.flip }
use overload::constant &decimal;
say .1e-003 # "300-e1."
我认为overload::constant
规范或现有库中不存在类似的东西,但是应该可以通过在 AST 中查找您感兴趣的文字类型并用对象构造函数替换它来使用宏来编写它或任何你需要的。
更简洁的方法可能是将这些常量中的每一个都包装在宏调用中,而不是用一个来跨越整个程序。