语法问题

时间:2010-02-15 11:57:54

标签: ruby-on-rails ruby

这些变量是什么?

Class User
  TOTO = 1
  TITI = 2
end

User::TOTO # 1
User::TITI # 2

任何指向该文档的链接? 谢谢,

2 个答案:

答案 0 :(得分:9)

TOTOTITI被定义为User类中分别为值1和2的常量。

您可以在用户类本身中访问这些常量,只需将其引用为TOTOTITI

但是如果你想从用户类之外访问这些常量,那么你必须使用类名,这就是我猜你正在做的事情,即User::TOTOUser:TITI

这是little tutorial on the constants

答案 1 :(得分:2)

Class应为小写,一个。

class User
  TOTO = 1
  TITI = 2
end

User::TOTO # 1
User::TITI # 2

UserTOTOTITI都是常量,User引用了一个类,TOTOTITI都存储在内部该类的命名空间和引用整数。

在ruby中,你有几种类型的变量,都是由起始字符识别的。

  • 局部变量以小写字母开头,并且只能在首次定义的范围内访问。
  • 常量以大写字母开头,可以在定义它们的命名空间(类或模块)中访问。
  • 实例变量以单个@符号开头,只要self计算到定义了eh实例变量的实例(通常在实例方法中),就可以访问它们
  • 类变量以@@符号开头,并且只要在首先定义它们的类或其任何子类或其任何实例中,就可以访问它。