在RubyRails中使用全局变量还是常量变量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

假设我们与memcache或redis有连接......哪种风格更受欢迎,为什么?

MEMCACHE = Memcache.new(...)
REDIS = Redis.new(...)

或者

$memcache = Memcache.new(...)
$redis = Redis.new(...)
提问于
用户回答回答于

它们不是等同的结构。根据你的应用程序,它们可能可以互换,也可能不可互换,但它们在语义上是不同的。

# MEMCACHE is a constant, subject to scoping constraints.
MEMCACHE = Memcache.new(...)

# $memcache is a global variable: declare it anywhere; use it anywhere.
$memcache = Memcache.new(...)
用户回答回答于

你可能想使用Redis.current

例如:

Redis.current = Redis.new(host: 'localhost', port: 6379)

然后在你的其他类:

def stars
  redis.smembers("stars")
end

private

def redis
  Redis.current
end

扫码关注云+社区