如何从结构或类中调用redis?
class DetVisiModel (
val idJugador: String,
@SerializedName("nombre")
val nombreVisi: String,
@SerializedName("minuto")
val minutoVisi: String
)
我尝试了以下操作,但未成功
module A::Cool::Module
redis = Redis.new(host: ENV["REDIS_DEV_HOST"], port: 18163)
redis.auth(ENV["REDIS_DEV_AUTH"])
struct CoolStruct
def CoolFunciton
redis # => undefined method 'redis' for A::Cool::Module:Module
end
end
end
module A::Cool::Module
@@redis = Redis.new(host: ENV["REDIS_DEV_HOST"], port: 18163)
@@redis.auth(ENV["REDIS_DEV_AUTH"])
struct CoolStruct
def CoolFunciton
@@redis # => can't infer the type of class variable '@@redis'
end
end
end
module A::Cool::Module
module DB
redis = Redis.new(host: ENV["REDIS_DEV_HOST"], port: 18163)
redis.auth(ENV["REDIS_DEV_AUTH"])
end
struct CoolStruct
include A::Cool::Module::DB
def CoolFunciton
redis # => undefined local variable or method 'redis'
end
end
end
我真的不知道该怎么做。 而且我不想为每个需要Redis的类创建一个Redis连接。
答案 0 :(得分:3)
Case在Crystal中很重要。一个模块可以具有常量,在整个模块范围内都可以访问该常量(请注意大写字母):
module A::Cool::Module
REDIS = ...
...
end
(此外,您应该使用snake_case
,而不是TitleCase
作为方法名称;因此,cool_function
,而不是CoolFunction
。)