Ruby 变量类型
Ruby 变量主要分为四种类型:局部变量、实例变量、类变量和全局变量。每种变量类型的作用域和命名方式不同。
局部变量以小写字母或下划线开头,例如 name 或 _count。它们仅在当前作用域内有效,比如在方法或块内部。
实例变量以 @ 开头,例如 @age。它们属于对象的实例,可以在类的任何方法中访问。
类变量以 @@ 开头,例如 @@total。它们在整个类范围内共享,包括所有实例和子类。
全局变量以 $ 开头,例如 $global。它们可以在程序的任何地方访问,但过度使用可能导致代码难以维护。
变量作用域
局部变量的作用域限制在定义它们的块、方法或类内部。一旦超出作用域,局部变量将无法访问。
实例变量的在对象实例的整个生命周期内有效,可以在对象的任何方法中访问。
类变量的作用域覆盖整个类及其子类,所有实例共享同一个类变量。
全局变量的作用域最广,可以在程序的任何位置访问和修改,但应谨慎使用以避免命名冲突和不可预测的行为。
变量赋值与引用
Ruby 变量通过赋值操作符 = 进行赋值。变量可以存储任何类型的值,包括数字、字符串、数组、哈希等。
name = "Ruby" # 字符串
age = 30 # 整数
scores = [90, 85] # 数组
变量赋值是引用传递,多个变量可以指向同一个对象。修改对象会影响所有引用该对象的变量。
a = [1, 2]
b = a
b << 3
puts a # 输出 [1, 2, 3]
冻结变量
通过调用 freeze 方法可以冻结变量,防止其值被修改。冻结后的变量尝试修改会抛出 RuntimeError。
str = "Hello".freeze
str << " World" # 抛出错误
变量命名约定
变量名应使用小写字母和下划线,遵循蛇形命名法(snake_case)。避免使用保留字作为变量名。
实例变量和类变量应明确表达其用途,全局变量应尽量少用并加上前缀以区分。
user_name = "Alice" # 局部变量
@user_age = 25 # 实例变量
@@total_users = 100 # 类变量
$app_version = "1.0" # 全局变量

被折叠的 条评论
为什么被折叠?



