Ruby教程
Ruby控制语句
Ruby高级

Ruby 变量

Ruby 变量

Ruby 变量是保存要在程序中使用的数据的位置。每个变量都有不同的名称。这些变量名称基于一些命名约定。与其他编程语言不同,Ruby 不需要声明变量。需要一个前缀来表示。
Ruby 中有四种类型的变量:
局部变量 类变量 实例变量 全局变量 Ruby Variables

局部变量

局部变量名称以小写字母或下划线(_) 开头。它只能在其初始化块内访问或具有其范围。一旦代码块完成,变量就没有作用域。
当未初始化的局部变量被调用时,它们被解释为对没有参数的方法的调用。

类变量

类变量名称以@@ 符号开头。它们需要在使用前进行初始化。一个类变量属于整个类,可以从类内的任何地方访问。如果该值将在一个实例中更改,则它将在每个实例中更改。
一个类变量被该类的所有后代共享。未初始化的类变量将导致错误。
示例:
#!/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 是一个类变量。
输出:
Ruby 变量 1

实例变量

实例变量名称以@ 符号开头。它属于类的一个实例,并且可以从方法内的类的任何实例访问。它们只能有限地访问类的特定实例。
它们不需要初始化。未初始化的实例变量将具有 nil 值。
示例:
#!/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("Assam") 
second=States.new("Meghalaya") 
third=States.new("Maharashtra") 
fourth=States.new("Pondicherry") 
# Call Methods 
first.display() 
second.display() 
third.display() 
fourth.display()
在上面的例子中,@states_name 是实例变量。
输出:
Ruby 变量 2

全局变量

全局变量名称以 $ 符号开头。它的作用域是全局的,意味着它可以从程序中的任何地方访问。
一个未初始化的全局变量将有一个 nil 值。建议不要使用它们,因为它们会使程序变得神秘和复杂。
Ruby 中有许多预定义的全局变量。
示例:
#!/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
在上面的例子中,@states_name 是实例变量。
输出:
Ruby 变量 3

总结

本地 全球 实例 班级
范围 限制在初始化块内。 它的范围是全球性的。 它属于一个类的一个实例。 仅限于创建它们的整个班级。
命名 以小写字母或下划线(_) 开头。 以 $ 符号开头。 以@ 符号开头。 以@@ 符号开头。
初始化 无需初始化。未初始化的局部变量被解释为没有参数的方法。 无需初始化。一个未初始化的全局变量将有一个 nil 值。 无需初始化。一个未初始化的实例变量将有一个 nil 值。 它们需要在使用前进行初始化。未初始化的全局变量会导致错误。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4