如何处理常量?

巴拉

我试图初始化一个常量,如果它不存在,并且已经存在,则使用它。我尝试了以下操作并收到警告。

User = User || Struct.new(:name) #NameError: uninitialized constant User
User = Struct.new(:name) || User #works (1st time)

但是此语句将被多次遇到,当我遇到这种情况时

User = Struct.new(:name) || User 

#warning: already initialized constant User
#warning: previous definition of User was here

如何处理这种情况?

奥雅纳·拉希特(Arup Rakshit)

试试这个

 User ||= Struct.new(:name)

User = User || Struct.new(:name)这将不起作用,因为在定义它之前User已使用条件运算符对其进行了检查||因此,您将收到错误,如NameError:未初始化的常量User例子

# first try that way
X = X || 2 #uninitialized constant X (NameError)
# then comment the above and try below way
X ||= 2
X # => 2

X = X || 2将无法正常工作,因为在与结合使用之前我们没有在任何地方定义它||

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章