📅  最后修改于: 2023-12-03 14:47:09.058000             🧑  作者: Mango
在 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