ruby - 默认情况下所有方法都是公开的吗?

标签 ruby

如果我的主程序中有这个:

def hi
  puts 'hi'
end
self.hi

它不会工作,因为 hi 是私有(private)的。

我了解到 Ruby 中的所有方法默认情况下都是公共(public)的,但事实并非如此,为什么?

最佳答案

main 环境中定义一个方法是很棘手的。当您在 main 中定义一个方法时,它默认是私有(private)的。所以你要么必须将它作为私有(private)使用:

def hi
  puts 'hi'
end
hi

或明确公开:

def hi
  puts 'hi'
end
public :hi
self.hi

关于ruby - 默认情况下所有方法都是公开的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553843/

相关文章:

ruby - Ruby 方法可以知道它的名字吗?

ruby-on-rails - 如何判断一个字符串是不是数字?

ruby-on-rails - 如何在 ruby​​ 中动态调用关联?

ruby-on-rails - 在我的 Rails 应用程序中,Fancybox 没有正确地与 ERB 循环

ruby - 在 OS X 上将 Ruby 更新到最新的 1.9 版本的最佳方法?

ruby - Neo4j 上的拓扑排序

ruby-on-rails - 为 Rails 4 禁用 ActiveRecord

ruby-on-rails - 使用 Ruby 1.9.3 进行 ruby​​ 调试?

ruby - 在 Ruby 中插入包含双引号和冒号的 XML 字符串

ruby - Ruby 中匿名结构的用途是什么?