如果我像这样调用ruby对象
def classA
@myvar = "A"
end
def classB < classA
puts @myvar
end
在ruby中,是否可以打印并访问@myvar?
答案 0 :(得分:0)
首先,使用class
关键字定义ruby类。
def
用于方法。
此外,ruby类名应始终以大写字母开头。
@myvar
不是全局变量。
在ruby中,您使用美元符号$myvar
创建全局变量。
at符号为您提供实例变量。
实例变量可用于定义它们的类中的所有方法,但它们需要通过方法初始化。
如果你想要一个不需要在方法中初始化的变量,你也可以使用类变量,比如@@myar
。
只存在@@myvar
的一个副本,在您的类的所有实例之间共享,并且它将由子类继承。
如果要从类外部访问变量,则需要一个getter方法,使您可以访问该变量。 一个例子如下
class ClassA
@@myvar = "A"
end
class ClassB < ClassA
def myvar
@@myvar
end
end
b = ClassB.new
puts b.myvar
答案 1 :(得分:0)
你写这样的课
class A
end
class B
end
如果你在谈论全局变量,那么这样就足够了
class A
$var = 1
end
现在这个$ var随处可见..它穿过墙壁!因此,您也可以访问class B
。