Ruby中,实例方法可以隐式使用类变量,但是必须显式使用类方法

本文探讨了Ruby语言中类方法与变量的调用机制,特别是如何通过双冒号(::)来调用方法和访问变量,并解释了Ruby对大小写敏感的特性,即大写字母开头被视为常量,而小写字母开头则被视为方法。

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

class C
  @@Const1=1
  Const2=2
  @@var3=3

  def self.m
    p @@Const1,Const2,@@var3;
  end 

  def m2
    p @@Const1,Const2,@@var3;
    C::m #ok 
    #m #error:undefined local variable or method `m'
  end 

end

p C::Const2;#2

#Ruby中使用双冒号(::)方式调用方法或变量时,
#    Ruby倾向于把大写字母开头的名字,当做常量,把小写字母开头的名字,当做方法;
#使用点号(.)调用时,总是被当做方法
#p C::var3; #error:undefined method `var3' for C:Class (NoMethodError)'
#p C.var3; #error:undefined method `var3' for C:Class (NoMethodError)'
#p C::Const1; #error:uninitialized constant C::Const1 (NameError)
#p C.Const1; #error:undefined method `Const1' for C:Class (NoMethodError)'

C.m
#1
#2
#3

c=C.new
c.m2
#1
#2
#3
#1
#2
#3

在Ruby中,实例方法中可以隐式使用类变量,但是对类方法的使用,必须显式使用。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值