0

是否可以为整个应用程序重新定义一个内置的 ruby​​ 函数?

例子 :

我想要一个新的 puts 定义:

def puts
  return nil
end

我知道重新定义 put 是愚蠢的,但这只是一个例子。

提前致谢。

4

2 回答 2

2

当然,这是可能的:

module Kernel
  def puts(*)
    42
  end
end

puts "does it work?"
#=> 42

问题是:这有意义吗?:)

于 2013-09-12T15:53:34.153 回答
2

Tessi 向您展示了一个严格的覆盖。相反,您也可以进行包装:

module Kernel
  alias :real_puts :puts

  def puts *args
      real_puts args
      42
  end
end


puts puts "Hello World", "Bye"
#Hello world
#Bye
#42
于 2013-09-12T16:09:58.597 回答