0

例如,假设我们有一个名为 ItemCollection 的类并且我们调用 ItemCollection.quantity,因为不需要括号,我们如何知道它是访问 ItemCollection 中的数量变量还是它调用了 quantity() 函数?此外,对于 Ruby 类中的字段,它们是私有的还是公共的?

该评论回答了我对吸气剂的问题。但是,如果我有一个数量变量和一个做其他事情而不是获取/设置数量值的数量()函数怎么办?Ruby 如何确定我真正指的是哪一个?

4

2 回答 2

0

只有通过方法才能直接访问类中的变量(除了自省)。

于 2013-02-27T22:52:39.237 回答
0

1. 是否以小写字母(a,b..)开头?

一种。Ruby 检查它是否是局部变量。
湾。Ruby 检查它是否是方法。
C。Ruby 调用 method_missing

2. 是否以大写字母(A,B..)开头?

一种。Ruby 检查它是否是常量。
湾。Ruby 调用 const_missing

3.是方法调用(object.method)吗?

一种。Ruby 检查它是否是方法
b。Ruby 调用 method_missing

所以外部对象(如 steenslag 所说)ruby 3.
在你的对象/类定义中它与 1/2 一起使用:

class E    
  def a()
    'a'
  end
  def get_a()
    a=42
    puts a 
  end
end
E.new.get_a() #42

但在这种情况下:

class A
  a=42
  def get_a()
    a
  end
end
A.new.get_a() # NameError: undefined local variable or method `a' for #<A:0x3820368>

变量a属于 A 的某个版本因此类 A 和类 A 的实例在声明类后本身不知道a

于 2013-10-13T13:26:17.790 回答