【ruby】ruby 动态方法总结
本文对ruby动态方法特性进行探讨。
结合以下例子:
?
?
解释:
1.send方法def method_missing(name,*args) methodname=name.to_s super if !%w[andy sky fly].include? methodname ###如果方法名不在 and sky fly里面就调用继承父方法,在这里的才继续执行。 puts "mehtod name is:#{name}. args:#{args}" end?总结:
从动态方法的这个几个特性来看,ruby 方法定义确实是非常灵活的,也是动态语言的一大特性和优势。而在java这种静态语言里似乎很难有这种灵活性。
静态使得方法很规范,且不容易犯错(在编译期就会检查出很多错误,不会带到运行期)
动态增加了很大的灵活性,但也可能带来不规范,容易犯错,错误不好定位等问题。
各有优势,适用不同场景。