gpt4 book ai didi

ruby - 在 Ruby 中,$?是一个不能直接赋值的 'read-only' 变量。知道如何为我自己的自定义变量/类执行此操作吗?

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:04 25 4
gpt4 key购买 nike

我面临的问题是我需要防止 Ruby 类在定义后被操纵。我可以卡住它,但这并不能阻止人们一起覆盖它。

我意识到有些人会想用某种“Ruby 不应该这样使用”的口头禅来回应。我明白了,但我的情况很特殊。这是针对 codewars.com 的,其中用户提交的解决方案与自定义测试框架相结合,因此我需要阻止用户提交的代码修改测试类。

我曾认为让常量成为真正的常量是不可能的,但我注意到 $?全局变量是这样的。这可能是因为它内置于语言中,而不是可以使用自定义变量完成的事情。

最佳答案

那是因为它内置于语言中。

在 Ruby 中没有办法真正定义常量。最接近的方法是编写自定义 getter/setter 并在已设置变量时抛出错误。

Throw exception when re-assigning a constant in Ruby?

关于ruby - 在 Ruby 中,$?是一个不能直接赋值的 'read-only' 变量。知道如何为我自己的自定义变量/类执行此操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20128233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com