我现在想给一个类添加一个字符串类变量,但 RubyMine 提示我说不要用 class variable
那应该用什么方法实现这个目的呢?
我现在想给一个类添加一个字符串类变量,但 RubyMine 提示我说不要用 class variable
那应该用什么方法实现这个目的呢?
|
lighteningNov 21, 2016
1
如果是常量没问题。如果是变量,为什么不用 instance variable 呢?
|
|
lighteningNov 21, 2016
2
先说说你要干什么吧,为什么你觉得自己需要类变量。
|
|
3
@lightening 是常量,就一个字符串
|
|
4
那习惯上用全大写字母表示。这样 RubyMine 应该也就不会提示了。
|
|
5
1 )可以使用 class variable 只要你清楚它是怎么运作的
2 )常量大写开头即可,需要写在 class 或 module 层面的 scope 3 )也可以写成: def self.const_str; 'my_string'; end |
|
msg7086Nov 21, 2016
6
Constant 没问题。 Variable 会有大问题。
|
|
warrenooNov 21, 2016
7
首先分析你的使用场景到底要的是常量还是变量。
- 如果是常量, 示例如下 class Example XXX = "xxxx".freeze end p Example::XXX - 如果是变量,最好不要显式的使用类变量,比如 @@xxx = "xxxx",示例如下 class Example class << self attr_accessor :str def do_something str = "xxxx" p str end end end 最后,如果这个类有没实例化的需求,以上示例中的 class 完全可以替换成 module 来使用 |
|
warrenooNov 21, 2016
8
代码竟然不能排版。。
|