ruby中缺少括号,我如何知道它是否';是变量还是函数
例如,假设我们有一个名为ItemCollection的类,我们调用ItemCollection.quantity,因为括号不是必需的,我们如何知道它是访问ItemCollection中的quantity变量,还是调用quantity()函数?另外,对于Ruby类中的字段,它们是私有的还是公共的 这个评论回答了我的问题。但是,如果我有一个quantity变量和一个quantity()函数,该函数执行其他操作,而不是获取/设置quantity的值,该怎么办?Ruby如何确定我指的是哪一个 只有通过方法才能直接访问类中的变量(内省除外)。1。它是以小写字母(a,b…)开头的吗? a。Ruby检查它是否是局部变量。ruby中缺少括号,我如何知道它是否';是变量还是函数,ruby,Ruby,例如,假设我们有一个名为ItemCollection的类,我们调用ItemCollection.quantity,因为括号不是必需的,我们如何知道它是访问ItemCollection中的quantity变量,还是调用quantity()函数?另外,对于Ruby类中的字段,它们是私有的还是公共的 这个评论回答了我的问题。但是,如果我有一个quantity变量和一个quantity()函数,该函数执行其他操作,而不是获取/设置quantity的值,该怎么办?Ruby如何确定我指的是哪一个 只有通过方
BRuby检查它是否是方法。
CRuby调用方法_丢失 2.它是以大写字母(A,B…)开头的吗? a。Ruby检查它是否为常量。
BRuby称const_失踪 3.是方法调用(object.method)吗? a。Ruby检查它是否是方法
BRuby调用方法_丢失 所以外部对象(正如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=42
def get_a()
A.
结束
结束
A.new.get_A()#name错误:未定义的局部变量或方法'A'#
变量a属于a的某个版本,因此在声明类之后,类a和类a的实例本身并不知道a。您不应该知道。突然间,getter和fields是完全相同的接口。举个例子,你可以在没有getter的情况下获取数量变量?请参阅我更新的问题。定义的最后一个函数将覆盖前面的函数。提问时,请尽量不要假设。显示实际代码和数据,运行时遇到的错误,以及帮助我们处理实际问题所需的任何其他内容。是的。此外,实例变量前面有
@
,类前面有@
,局部变量只能在其范围内访问,因此它们是不存在问题的。