簡體   English   中英

如何調用在Ruby中另一個模塊中定義的方法?

[英]How to call a method defined in another module in Ruby?

class Foo
  include Bar
  include Baz
end

module Bar
  def do_something
  end
end

module Baz
  do_something
end

Baz模塊無權訪問Bar 有沒有辦法在Bar調用方法?

一種方法是使用Bar 擴展 Baz ,但我想將它們全部包含Foo

如果出於某種原因您不想使用Bar 擴展 Baz ,則可以創建一個在Baz擴展 Bar對象

module Bar
  def do_something
    puts 42
  end
end

module Baz
  Object.new.extend(Bar).do_something # prints 42
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM