您当前的位置: 首页 >  ruby

ruby中如何调用与局部变量同名的私有方法

发布时间:2014-10-31 15:35:30 ,浏览量:0

    如果ruby中一个局部变量名和私有方法名同名的话,默认该名称被解释为变量而不是方法:

x=10;

def x;puts "what?" end

当你输入x实际不能执行x方法。解释器只把x解释为变量。而且undef只能对方法而不能对变量下手,所以undef x仍然不行,变量还在那里!一种解决方法是将x方法转换为一个method,然后调用:

x_f = method(:x)

x_f[]

或者还有一种方法,就是方法别名!你可以指定x的一个别名,这时x肯定会解释为方法:

alias new_x x

new_x

你当然可以吧方法转成method然后再转成proc,最后调用,不过这似乎多此一举鸟:

def call_x(&proc)

    proc.call

end

call_x &x_f

哦鸟!ruby非常变通的,神马事都有几种解决方法。

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107952博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1102s