首页 > 学院 > 开发设计 > 正文

[Ruby] ruby中的拟态方法的调用中的小细节

2019-11-08 01:55:51
字体:
来源:转载
供稿:网友

Ruby中调用方法

Ruby是怎么判断方法名的:

 首先这个明显的存在对象调用,譬如obj.method  self.method , 

后面加了参数了 如  method(attr1,attr2...) ,

这就能直接的判断这个method是方法名,而不是变量名

所以在调用的时候需要的注意:

class A  def attr= name    @name = name  end  def attr    self.attr= "sdas"    @name  endendobj = A.newp obj.attr

=> sdas

但是如果这样使用:

class A  def attr= name    @name = name  end  def attr    attr= "sdas"    @name  endendobj = A.newp obj.attr

则返回 nil

原因是

在这个标记的地方 并没有将attr= "sdas" 当做方法在调用,而是在当做 常量使用,正确的应该是

是使用

self.attr= "sdas"


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表