2017-07-20 82 views
1

我知道我可以使用#call功能上PROC對象,像這樣:我自己的類的#CALL功能

def you_called(object) 
    object.call 
end 

a_proc = lambda {puts "I'm a Proc"} 
you_called a_proc 

但有也用我自己的類,如果#call功能的方法那麼我如何實現它?

我的想法沿着這樣的行雲:

class My_own_class 
    def some_method 
     puts "Hi from My_own_class#some_method" 
    end 
end 

object = My_own_class.new 
+0

你能提供什麼是你想達到一個例子嗎? – Gerry

+0

@Gerry好的,我將編輯帖子。 – ljnissen

回答

2

是就可以了,這裏是如何:

class Callable 
    def self.class_method 
    puts "I am a class method" 
    end 
    def instance_method 
    puts "I am an instance method" 
    end 
end 

Callable.method(:class_method).call 
Callable.new.method(:instance_method).call 
+0

非常好。謝謝! – ljnissen