Ruby 继承父类有参数如何实现?

英文原文 http://rubyblog.pro/2017/07/i...

Rails 5 中可以看到migration定义中会有版本参数 ActiveRecord::Migration[5.0]

原理是只要< 后边返回的是类对象就可以

基本继承

class Human; end

class Man < Human
end

也可以这样,foo 为 Human 类

class Human; end

foo = Human

class Man < foo 
end

类似的

class Human; end

def parent_class
  Human
end

class Man < parent_class
end

实现带参数版本

class Human
  def self.[](version)
    puts version
    self
  end
end

class Man < Human[:basic]
end

会打印 basic,Human[:basic] 表示调用类方法Human.[] 参数是 :basic


lidashuang
6.7k 声望165 粉丝

$ Ruby/Elixir/Golang


引用和评论

0 条评论