我是靠谱客的博主 懵懂彩虹,最近开发中收集的这篇文章主要介绍新人学ruby---ruby 变量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

刚开始接触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 变量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部