📜  Ruby 中的全局变量(1)

📅  最后修改于: 2023-12-03 14:47:09.058000             🧑  作者: Mango

Ruby 中的全局变量

在 Ruby 中,全局变量以 $ 符号作为前缀。全局变量在程序的任何地方都可以访问,它们的作用范围覆盖整个程序。

定义全局变量

定义全局变量非常简单,只需要在变量名前加上 $ 符号即可。

$global_variable = "I am a global variable"
访问全局变量

全局变量可以在程序的任何地方进行访问,包括函数、类等等。

$global_variable = "I am a global variable"

def print_global
  puts $global_variable
end

print_global
# 输出:I am a global variable
避免滥用全局变量

全局变量可以在程序的任何地方都可以被修改,因此过量使用全局变量会让程序变得难以维护和理解。在编写 Ruby 程序时,应尽量避免使用全局变量来存储需要在程序中共享的数据。如果需要在不同的函数或类中共享数据,可以使用实例变量或类变量。

实例变量

实例变量以 @ 符号作为前缀,它们是属于对象的变量,在对象之间不会共享。

class Person
  def initialize(name)
    @name = name
  end
  
  def print_name
    puts @name
  end
end

person_1 = Person.new("Alice")
person_2 = Person.new("Bob")

person_1.print_name
# 输出:Alice

person_2.print_name
# 输出:Bob
类变量

类变量以 @@ 符号作为前缀,它们是属于类的变量,在所有对象之间共享。

class Person
  @@total_count = 0
  
  def initialize(name)
    @name = name
    @@total_count += 1
  end
  
  def self.total_count
    @@total_count
  end
end

person_1 = Person.new("Alice")
person_2 = Person.new("Bob")

puts Person.total_count
# 输出:2