相关疑难解决方法(0)

Ruby中包含和扩展有什么区别?

刚刚开始关注Ruby元编程.mixin/modules总是让我困惑.

  • include:将指定模块方法中的混合作为目标类中的实例方法
  • extend:将指定的模块方法混合为目标类中的类方法

那么主要区别在于这还是潜伏着更大的龙? 例如

module ReusableModule
  def module_method
    puts "Module Method: Hi there!"
  end
end

class ClassThatIncludes
  include ReusableModule
end
class ClassThatExtends
  extend ReusableModule
end

puts "Include"
ClassThatIncludes.new.module_method       # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method            # "Module Method: Hi there!"
Run Code Online (Sandbox Code Playgroud)

ruby module include extend

397
推荐指数
4
解决办法
8万
查看次数

标签 统计

extend ×1

include ×1

module ×1

ruby ×1