Ruby 变量重点知识

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"  # 全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值