在ruby 中,有一个功能就是meta programming. 这个是什么意思了 就是说写一个程序来造出一个程序。
比如说当你想定义一个函数的时候
你可能使用以下的方法
def hello
puts 'hello'
end
现在有了meta programming 之后,我们就可以换一种写法了。 使用define_method
define_method('hello') { puts 'hello' }
那么我们为什么要特意使用define_method了, 他的存在的意义就在于可以减少重复。
比如说我们有三个函数
def user; @data[:user]; end
def email; @data[:email]; end
def food; @data[:food]; end
你是不是觉得长大很像了, 是不是有点重复了啊, 现在就换一种写法
%w(user email food).each do |meth|
define_method(meth) { @data[meth.to_sym] }
end
感觉如何,没有重复性了吧。。
本文介绍Ruby中的元编程概念,通过示例展示如何使用`define_method`减少代码重复性,并提高程序灵活性。
1045

被折叠的 条评论
为什么被折叠?



