ruby作用域 - 局部变量 实例变量 类变量

本文详细解析了Ruby中的局部变量、实例变量和类变量的区别与应用。通过具体代码示例,展示了不同变量类型在类定义和方法调用中的行为表现,强调了变量作用域对程序逻辑的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 局部变量
class School
count=100
def student
count=50
puts count
end
puts count
end
s=School.new
s.student
代码结果
100
50
在类定义的局部作用域中,初始化变量count,所处的局部作用域与方法定义中的变量count不同,在方法定义之后,输出 50,就回到了类定义的局部变量作用域中,与此同时boy需要在创建实例school之后,然后才能发送消息。

2、实例变量

class   School          
         def student
            @count=50
            puts @count
         end
         @count=100
      end

s=School.new.student
代码结果
50
大家可能会认为输出100,但是虽然变量名称相同,又都是实例变量,但是彼此无关,它们属于不同的对象。
3、类变量

思路:学生总数
class School
@@total_count=0
def initialize(name)
@@total_count+=1
end
def self.total_count
@@total_count
end
end

z=School.new(“张三”)
w=Schoo.new(“李四”)
School.total_count

代码结果 2

类变量提供了可以在类和实例之间可以共享数据的存储机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值