一、什么是動(dòng)態(tài)方法荆隘?
這就要從靜態(tài)語言和動(dòng)態(tài)語言的區(qū)別說起恩伺,靜態(tài)語言比如Java,在編譯階段就需要運(yùn)行對象調(diào)用的所有方法椰拒,而動(dòng)態(tài)語言晶渠,只需要真正調(diào)用方法的時(shí)候才運(yùn)行這個(gè)方法凰荚。
舉個(gè)例子:
class box
def open_1
puts "hello"
end
def open_2
puts "world"
end
end
box = Box.new
box.send('open_#{num}')
上面是用Ruby寫的“打開不同魔法盒,就顯示不同的字“的需求
用靜態(tài)語言寫褒脯,就要這樣寫:
class box
def open(num)
case num
when 1;puts("hello")
when 2;puts("world")
end
end
end
box = Box.new
box.open(1)
二便瑟、為什么要用動(dòng)態(tài)方法龄广?
三预鬓、怎么用動(dòng)態(tài)方法?
直接在對象后面加上動(dòng)態(tài)方法涤妒,參數(shù)是靜態(tài)方法名
資料來源:
https://ruby-china.org/topics/4313
https://blog.csdn.net/u011345213/article/details/42167763