概述
刚开始接触ruby,如果有误望提出!
1.全局变量
全局变量以 $ 开头,未初始化时默认的值是nil,给全局变量赋值时会改变全局的状态,所以一般不建议使用全局变量。
例子:
# 定义一个全局变量$quanju
$quanju = 10
class BianLiang1
# 定义个方法 打印出全局
def print_quanju
puts "打印全局变量值:#$quanju"
end
# 修改全局变量
def update
$quanju = 20
puts "打印修改后的全局变量值:#$quanju"
end
end
class BianLiang2
def print_quanju
puts "打印全局变量值:#$quanju"
end
# 修改全局变量
def update
$quanju = 30
puts "打印修改后的全局变量值:#$quanju"
end
end
bian1 = BianLiang1.new
bian1.print_quanju
bian1.update
bian2 = BianLiang2.new
bian2.print_quanju
bian2.update
bian1.print_quanju
执行结果:
打印全局变量值:10
打印修改后的全局变量值:20
打印全局变量值:20
打印修改后的全局变量值:30
打印全局变量值:30
2.实例变量
实例变量以 @ 开头。未初始化时默认值是nul。实例变量是每个实例独有的,不予其它实例共享,既自己改变了,其它实例不受影响。
实例变量是私有的,无法在类外直接引用,但是可以通过类方法和实例方法访问。
例子:
class Variable
@shili01 = 10
@shili02 = 20
def shili
puts @shili01 = 30
puts @shili02
puts @shili03 = 50
end
def self.t
puts @shili01
puts @shili02
end
end
object = Variable.new
object.shili
puts "=======分割线======="
Variable.t
执行结果:
30
nil
50
=======分割线=======
10
20
注意:前后定义的两个@shili02 是两个不用的实例变量。第一个是类对象的实例变量,第二个是类的实例对象的实例变量。
3.类变量
类变量名以 @@ 开头,必须初始化才能在方法定义中使用。类变量被这个类所有,实例对象共享。
类变量是私有的,再类外无法直接访问,可以通过类方法和实例方法访问。
例子:
class Variables
@@lei = 0
def add
@@lei += 1
puts "类变量值:#@@lei"
end
end
v = Variables.new
v.add
v2 = Variables.new
v2.add
结果:
类变量值:1
类变量值:2
4.局部变量
局部变量以小写字母或者下划线开头。局部变量的作用域从class、module、def、do到相应的结尾或者从左大括号到右大括号。
当调用一个未初始化的局部变量时,它被解释为调用一个不带参数的方法。
局部变量不可以在内部类或者子类中访问;类中的方法不可以访问该类中定义的局部变量。
最后
以上就是懵懂彩虹为你收集整理的新人学ruby---ruby 变量的全部内容,希望文章能够帮你解决新人学ruby---ruby 变量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复