gpt4 book ai didi

ruby - 全局列表变量在我的应用程序中是否合适,或者我应该使用替代方法吗?

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

我正在制作一个刽子手类型的游戏。我一直在阅读很多关于全局变量不好的文章,我想尽我所能使用最佳实践。话虽如此,我目前声明了几个不同类别的变量,每个类别变量都包含一个单词列表供程序选择。

是否可以将它们声明为全局的,或者我应该将它们放在方法或其他类似的东西中吗?

它们永远不会被改变或类似的东西,它们只是被访问所以程序可以选择一个随机的单词供玩家猜测。这样可以吗?

最佳答案

全局变量通常是不好的。全局常量(您似乎拥有)要好一些。

只需使用正确的语法:

$words = %w(foo bar) # bad, global var syntax
WORDS = %w(foo bar) # good, syntax for constants

虽然我会将该常量限定在某个模块或类中,以免污染全局命名空间。你不需要它真正全局化,对吧?像这样:

class Game
WORDS = %(foo bar)
end

# then
Game::WORDS

更好的是,将这个常量隐藏在一个方法中:

class Game
def self.words
%(foo bar)
end
end

# then
Game.words

这样,如果稍后您需要从文件中读取单词列表,您只需更改该方法的实现即可,而无需修改其余代码。

关于ruby - 全局列表变量在我的应用程序中是否合适,或者我应该使用替代方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33385015/

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