美文网首页
Ruby变量

Ruby变量

作者: 易百教程 | 来源:发表于2017-05-07 14:53 被阅读252次

Ruby变量是用于保存在程序中使用的数据的位置。 每个变量都有不同的名称。 这些变量名称基于一些命名约定。 不像其他编程语言,在Ruby中不必先声明变量再使用。 只需要一个前缀来指示它就可以了。

Ruby中有四种类型的变量:

  • 局部变量
  • 类变量
  • 实例变量
  • 全局变量

1. 局部变量

局部变量名以小写字母或下划线(_)开头。变量可在它的初始化块内或范围内访问。代码块完成后,变量就不在作用域存在了。

当未初始化的局部变量被调用时,它们被解释为对没有参数的方法的调用。

2. 类变量

类变量名以@@符号开头。需要在使用前进行初始化。 类变量属于整个类,可以从类中的任何位置访问。 如果在一个实例中该值将被更改,则它将在每个实例中被改变。

类变量由类的所有后代共享,未初始化的类变量将导致错误。

示例:

创建一个Ruby文件:class-variables.rb,编写以下代码 -

#!/usr/bin/ruby   
  
class States   
   @@no_of_states=0   
   def initialize(name)   
      @states_name=name   
      @@no_of_states += 1   
   end   
   def display()   
     puts "State name #@state_name"   
    end   
    def total_no_of_states()   
       puts "Total number of states written: #@@no_of_states"   
    end   
end   
  
# Create Objects   
first=States.new("Assam")   
second=States.new("Meghalaya")   
third=States.new("Maharashtra")   
fourth=States.new("Pondicherry")   
  
# Call Methods   
first.total_no_of_states()   
second.total_no_of_states()   
third.total_no_of_states()   
fourth.total_no_of_states()  

在上面的例子中,@@no_of_states是一个类变量。

执行上面代码,输出结果如下:

F:\worksp\ruby>ruby class-variables.rb
Total number of states written: 4
Total number of states written: 4
Total number of states written: 4
Total number of states written: 4

F:\worksp\ruby>

3. 实例变量

实例变量名以@符号开头。 它属于类的一个实例,可以从方法中的类的任何实例访问。 它们只能访问一个特定的类的实例。

它们不需要初始化,未初始化的实例变量的值是:nil

示例:

创建一个Ruby文件:instance-variables.rb,编写以下代码 -

#!/usr/bin/ruby   
  
class States   
   def initialize(name)   
      @states_name=name   
   end   
   def display()   
      puts "States name #@states_name"   
    end   
end   
  
# Create Objects   
first=States.new("Hainan")   
second=States.new("GuangDong")   
third=States.new("Beijing")   
fourth=States.new("ShangDong")   
  
# Call Methods   
first.display()   
second.display()   
third.display()   
fourth.display() 

执行上面代码,输出结果如下:

F:\worksp\ruby>ruby instance-variables.rb
States name Hainan
States name GuangDong
States name Beijing
States name ShangDong

F:\worksp\ruby>

4. 全局变量

全局变量名以$号开头。在全局范围内可访问,可以从程序中的任何位置访问它。

未初始化的全局变量的值会被初始化为:nil。建议不要使用全局变量,因为它们使程序变得秘密和复杂。

Ruby中有一些预定义的全局变量。

示例:

创建一个Ruby文件:global-variables.rb,编写以下代码 -

#!/usr/bin/ruby   
  
$global_var = "GLOBAL"   
class One   
  def display   
     puts "Global variable in One is #$global_var"   
  end   
end   
class Two   
  def display   
     puts "Global variable in Two is #$global_var"   
  end   
end   
  
oneobj = One.new   
oneobj.display   
twoobj = Two.new   
twoobj.display  

执行上面代码,输出结果如下:

F:\worksp\ruby>ruby global-variables.rb
Global variable in One is GLOBAL
Global variable in Two is GLOBAL

F:\worksp\ruby>

总结

以下是上面几种类型变量的概括 -

特性 局部变量 全局变量 实例变量 类变量
范围 仅限于初始化块内 全局范围 属于一个类的一个实例 仅限于创建它们的整个类
命名约定 以小写字母或下划线(_)开头 $符号开头 @符号开头 @@符号开头
初始化 不需要初始化,未初始化的局部变量被解释为没有参数的方法 不需要初始化,未初始化的全局变量的值为:nil 不需要初始化,未初始化的实例变量的值为:nil 需要在使用前进行初始化,未初始化的全局变量会导致错误。

相关文章

  • From Objective-C to Ruby(0)-常量变量

    变量 & 常量 OC: ruby: 注释 OC: ruby:

  • ruby变量

    ruby中多重复值 a, b, c = 1, 2, 3 变量前加上*,表示Ruby会将未分配的值封装为数组赋值给...

  • Ruby变量

    Ruby变量是用于保存在程序中使用的数据的位置。 每个变量都有不同的名称。 这些变量名称基于一些命名约定。 不像其...

  • Ruby 变量

    Ruby中有四种类型的变量. 局部变量 ( local variable ) 全局变量 ( global vari...

  • Ruby变量

    变量是持有可被任何程序使用的任何数据的存储位置。Ruby 支持五种类型的变量。一般小写字母、下划线开头:变量(Va...

  • ruby基础

    一、Ruby 类中的变量(Ruby 提供了四种类型的变量) 局部变量:局部变量是在方法中定义的变量。局部变量在方...

  • Ruby程序员的Golang之旅03

    Golang声明变量 VS Ruby声明变量 所有编程语言里面,我敢相信没有一门能比在Ruby里面声明一个变量来的...

  • Ruby类(二)

    类 Ruby是一种面向对象语言 定义类 类中的变量 Ruby 提供了四种类型的变量: 局部变量:局部变量是在方法中...

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • ruby初探——变量

    JavaScript语言中的变量一直是为人诟病的地方,初步接触Ruby后学习新的语言变量,学习心得留存在,此以备后...

网友评论

      本文标题:Ruby变量

      本文链接:https://www.haomeiwen.com/subject/jliutxtx.html