有没有相当于php __invoke魔术方法的红宝石?

时间:2015-12-06 04:22:52

标签: ruby metaprogramming

是否有与ruby中的php __invoke方法相同的东西?

e.g

class Test {
    public function __invoke() {
        echo "invoked";
    }
}

$test = new Test();
$test(); // prints invoked

1 个答案:

答案 0 :(得分:1)

不一样但确实应该完成这项工作

class Test
  def self.call
    puts "invoked self.call"
    return new
  end

  def call
    puts "invoked call"
  end
end

t = Test.()
t.()

您可以在类和对象上使用.()语法,因为类是对象。 .()只是.call

的简写