ruby - Ruby 中的方法访问

标签 ruby methods

为什么 Ruby 允许类隐式访问类外部的方法?

例子:

class Candy
    def land
        homer
    end
end

def homer
    puts "Hello"
end

Candy.new.land #Outputs Hello

最佳答案

“homer”方法的定义是将方法添加到Object类中。它没有定义自由函数。

Candy 类隐式继承自 Object,因此可以访问 Object 中的方法。当你在“land”方法中调用“homer”时,方法解析在当前类中找不到定义,去父类(super class)中,找到你添加到Object中的方法,并调用它。

关于ruby - Ruby 中的方法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/156394/

相关文章:

java - 无法通过类方法更改对象的值

java - 如何从另一个类调用run方法?

ruby-on-rails - 从 Rails 上的哈希 ruby​​ 访问多个值

ruby - 在没有互联网连接的情况下安装 Rubygems

javascript - Ruby on Rails 和 Javascript

ruby-on-rails - 在 heroku 中使用 rediscloud url 时不会触发 sidekiq worker

ruby - 为什么在 `/` 之后的正则表达式模式中不允许使用 `#`?

java - 为什么在 Java 中从容器类而不是它的实例调用方法

java - 从 Java 中的另一个类获取方法

javascript - 向对象添加方法