Nasıl bir yöntem zamanında tanımlandığı bulmak için?
Bu çok geç, ama burada bir yöntem tanımlandığı bulabilirsiniz:
# How to find out where a method comes from.
# Learned this from Dave Thomas while teaching Advanced Ruby Studio
# Makes the case for separating method definitions into
# modules, especially when enhancing built-in classes.
module Perpetrator
def crime
end
end
class Fixnum
include Perpetrator
end
p 2.method(:crime)
#<Method: Fixnum(Perpetrator)#crime>
Eğer Ruby varsa, 1.9 , source_location
kullanabilirsiniz
require 'csv'
p CSV.new('string').method(:flock)
# => #<Method: CSV#flock>
CSV.new('string').method(:flock).source_location
# => ["/path/to/ruby/1.9.2-p290/lib/ruby/1.9.1/forwardable.rb", 180]
Bu yerel kod derlenmiş gibi her şeyi işe yaramaz unutmayın. Method class bazı zeki işlevlerden de, bu yöntem tanımlandığı dosya döndüren Method#owner gibi.
Ayrıca diğer cevap REE __file__
__line__
ve notlarına bakın, onlar kullanışlı da. EDİT: -- kurulmuştur
CEVAP
Bu çok geç, ama burada bir yöntem tanımlandığı bulabilirsiniz:
# How to find out where a method comes from.
# Learned this from Dave Thomas while teaching Advanced Ruby Studio
# Makes the case for separating method definitions into
# modules, especially when enhancing built-in classes.
module Perpetrator
def crime
end
end
class Fixnum
include Perpetrator
end
p 2.method(:crime)
#<Method: Fixnum(Perpetrator)#crime>
Eğer Ruby varsa, 1.9 , source_location
kullanabilirsiniz
require 'csv'
p CSV.new('string').method(:flock)
# => #<Method: CSV#flock>
CSV.new('string').method(:flock).source_location
# => ["/path/to/ruby/1.9.2-p290/lib/ruby/1.9.1/forwardable.rb", 180]
Bu yerel kod derlenmiş gibi her şeyi işe yaramaz unutmayın. Method class bazı zeki işlevlerden de, bu yöntem tanımlandığı dosya döndüren Method#owner gibi.
Ayrıca diğer cevap REE __file__
__line__
ve notlarına bakın, onlar kullanışlı da. EDİT: -- kurulmuştur
Nasıl bir fonksiyon tanımlandığı bulma...
ıde yöntem tanımı bulmak için nasıl su...
Nasıl bir DOM düğüm üzerinde olay dinl...
bir öğe veri-öznitelik değeri için bir...
Nasıl bir yöntem adı ve satır numarası...