Ruby Constants 有没有办法拥有真正的常量..?

发布于 2024-10-21 18:08:38 字数 556 浏览 2 评论 0原文

可能的重复:
在 Ruby 中重新分配常量时抛出异常?

当我们在 ruby​​ 中使用大写字母单词时,它是一个常量:CONSTANT = "alive"。当我修改这个“假定的”常量时,它会给出一个错误,但无论如何都会修改它:

(irb):27: warning已经初始化常量CONSTANT => “13”。

这似乎是一种奇怪的行为。如果我正在设计游戏并需要一个恒定的值,例如:Cheatcode_health = true,并且意外地,该值被指定为 false0< /code>,这将是一种不寻常的行为。可能会有很多影响。简而言之,Ruby 中有真正的常量吗?

Possible Duplicate:
Throw exception when re-assigning a constant in Ruby?

When we use a capital letter word in ruby, it is a constant: CONSTANT = "alive". When I modify this "supposed" constant, it gives an error, but modifies it anyway:

(irb):27: warning already initialized constant CONSTANT
=> "13"
.

This seems like an odd behavior. If I am designing a game and need a value to be constant, say: Cheatcode_health = true, and by accident, the value gets assigned as false or 0, it would be an unusual behavior. There could be lot of implications. In short is there a true constant in Ruby?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情未る 2024-10-28 18:08:38

Ruby 是一种非常宽容的语言。如果重新分配常量,则无法引发错误。

唯一的解决方法是创建一个自定义方法来为常量赋值,并让该方法为您进行检查。

其他相关问题:

Ruby is a very permissive language. There's no way to raise an error if you re-assign a constant.

The only workaround is to create a custom method to assign values to constants and have this method do the check for you.

Other related questions:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文