当前位置: 代码迷 >> 综合 >> Ruby中 respond_to? 和 send 的用法 .
  详细解决方案

Ruby中 respond_to? 和 send 的用法 .

热度:32   发布时间:2023-12-14 04:35:03.0
如同其他的OO语言一样,在ruby中,通过给对象发送消息,来完成对象的功能,比如 str.upcase ,就是给str发送upcase的消息,点操作符(.),就是用来给对象发送消息的,str接受到消息,然后执行与消息对应的功能。 

但是,某些时候,我们并不知道对象能响应哪些消息,比如下面的代码就会产生错误 
obj = Object.new 
obj.talk 

undefined method 'talk' for #<Object:0x12345678> (NoMethodError) 

因为obj对象没法响应talk这个消息,如果使用 respond_to? 这个方法,就可以实现判断对象能否响应给定的消息了: 
  相关解决方案