【发布时间】:2018-08-07 17:41:27
【问题描述】:
最后,当我managed to understand how to fix this,也就是如何改变一个内部动态变量的值时,代码继续前进,现在是declared in this way:
my int $is-win = Rakudo::Internals.IS-WIN;
这是在class Encoding::Builtin 中声明的类变量。在世界上一切都有意义,因为操作系统不是在变量的生命周期内发生变化的东西。但是,我需要从其他操作系统测试此代码,因此我需要访问该类变量并为其分配一个 True 值。我可以使用meta object protocol 做到这一点吗?
【问题讨论】:
-
与其尝试使用内部结构,不如使用稍慢但更一致的
$*DISTRO.is-win?您应该能够轻松地动态覆盖哪个? -
@ElizabethMattijsen 在这种特殊情况下我不能。事实上,这就是我在 Rakudo 中打开this issue 的原因。