目前,我有這樣的代碼:Ruby:在method_missing中找到方法類型的最佳方法是什麼?
name, type = meth.to_s.match(/^(.+?)([=?]?)$/)[1..-1]
但它似乎並沒有最好的解決方法= \
任何想法如何使它更好? 謝謝。
目前,我有這樣的代碼:Ruby:在method_missing中找到方法類型的最佳方法是什麼?
name, type = meth.to_s.match(/^(.+?)([=?]?)$/)[1..-1]
但它似乎並沒有最好的解決方法= \
任何想法如何使它更好? 謝謝。
這大約是我怎麼想實現我method_missing
:
def method_missing(sym, *args, &block)
name = sym.to_s
if name =~ /^(.*)=$/
# Setter method with name $1.
elsif name =~ /^(.*)\?$/
# Predicate method with name $1.
elsif name =~ /^(.*)!$/
# Dangerous method with name $1.
else
# Getter or regular method with name $1.
end
end
還是這個版本,其中只有一個評估的正則表達式:
def method_missing(sym, *args, &block)
name = sym.to_s
if name =~ /^(.*)([=?!])$/
# Special method with name $1 and suffix $2.
else
# Getter or regular method with name.
end
end
什麼是「方法類型」? – Reactormonk 2010-09-18 16:15:52
xyz = - setter,xyz? - checker,xyz - getter – Daniel 2010-09-18 16:17:10
您能否在規範中更精確一些:== ==方法或===方法的「類型」是什麼?像「Kernel#puts」這樣的方法的「類型」是什麼? – 2010-09-18 19:05:58