在Ruby中,将代码放在initialize()方法中与直接放在类主体中有什么区别?在调用MyClass.new时,这两个命令似乎都被执行.

显然,initialize()可以接受参数,但这是唯一的区别吗?

class MyClass
  puts 'Hello'

  def initialize(params)
    puts 'World'
  end
end

推荐答案

try 创建MyClass的两个实例

a = MyClass.new
b = MyClass.new

要了解差异:

你好

世界

世界

当ruby加载文件时,类主体中的代码只执行一次.每次创建类的新实例时,initialize()都会执行.

Ruby相关问答推荐

当bsearch将数组中的第一个元素与2个值匹配时,它返回nil.为什么?

类似于模块的 attr_accessor 和 attr_reader 的东西?

如何在 Ruby 中反转数字的字节顺序

多线程期间的 MRI ruby​​ 内存访问特性

Ruby - 给定一个嵌套数组的数组,如何仅比较每个嵌套数组的最后一个值来找到最大值?

厨师从源代码安装和更新程序

在 MacOS Sierra 上使用 RMagick 2.16 的 ImageMagick 7 找不到 MagickWand.h

从href html标签中提取带有Ruby中nokogiri的链接(URL)?

如何在Ruby中获取终端窗口的宽度

在 RSpec 测试期间 suppress 控制台输出

如何按字母顺序排列忽略大小写的数组?

Ruby中的每个块都可以有一行吗?

不区分大小写的数组#include?

错误:Windows 的 SASS 安装

无法在 Windows 上安装 Aptana Studio 3.6

Ruby,生成随机十六进制 colored颜色

使用 `?`(问号)在 Ruby 中获取 ASCII 字符代码失败

如何在 macOS 上卸载 rbenv?

通过 factory_girl 协会查找或创建记录

Ruby:如何计算一个字符串在另一个字符串中出现的次数?